Cálculos matemáticos no próprio bash

Publicado por Daniel Zaia Manzano em 13/06/2013

[ Hits: 35.587 ]

 


Cálculos matemáticos no próprio bash



Como sabemos, o bash possui diversas funcionalidades.

Uma delas é a capacidade de realizar cálculos matemáticos sem o auxílio de ferramentas externas.

Sintaxe:

$((expressão))

Exemplos:

echo $((7+8))
15
echo $((30/10))
3
echo $((4*2))
8
echo $((196-75))
121
echo $((189*23+34/2-300))
4064
echo $((189*(23+34)/2-300))
5086
Operações envolvendo valores de variáveis:

Exemplo:

var=12
$ echo $((var*5))
60
Observações:

Também é possível atingir os mesmos resultados com a sintaxe:

$[expressão]

Mas esta sintaxe está em desuso e será removida do bash em versões futuras.

Atenção!
Não confunda a sintaxe (deprecada) de operações aritméticas do bash:

Exemplo:

$[5+6]

Com a sintaxe de estruturas condicionais:

Exemplo:

if [ $var -eq 10 ]

Note que no primeiro caso, o espaço entre os colchetes e os valores e os colchetes "[]" é opcional, enquanto que no segundo caso este espaço é obrigatório.

Para mais informações, consulte:

man bash

Outras dicas deste autor

Habilitando demais terminais virtuais

Transformando arquivo PDF em texto puro

type - Determinar o tipo de um comando

Como fazer para que comandos não sejam gravados no histórico

PrintScreen em modo texto

Leitura recomendada

Desativando e ativando o SWAP

Apagar somente os arquivos

Linha de comando: screenshot com exibição de miniatura

Atalhos Touchpad no KDE (Slackware)

O comando tail

  

Comentários
[1] Comentário enviado por danniel-lara em 13/06/2013 - 10:38h

Muito boa a dica

[2] Comentário enviado por anonimoculto em 06/06/2018 - 11:47h

ATENÇÃO: o bash só executa operações com números inteiros. Para operações com ponto flutuante é necessário usar a calculadora bc.

Exemplo:

echo $((10/3))
3

echo $(bc <<< "scale=4; 10/3")

3,3333

echo $(bc <<< "scale=22; 10/3")

3.3333333333333333333333

O comando acima usa o recurso "here string" do bash. A calculadora bc é invocada e o conteúdo das aspas é-lhe passado. scale define o número de casas decimal com a qual se deseja a resposta; no caso 4. A operação a ser realizada segue-se após o comando scale.

Repare que se usa no caso apenas o par de parêntesis simples. Está-se buscando o resultado de um comando $(comando) e não pela execução de uma operação matemática $(( operação aritmética )).

Espero ter ajudado.




Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts