Cálculos matemáticos no próprio bash

Publicado por Daniel Zaia Manzano em 13/06/2013

[ Hits: 37.144 ]

 


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

Como filtrar exatamente uma palavra no terminal

Debian - Versão da distribuição

lshw - Obtendo informações de hardware

Acompanhando progresso na cópia de arquivos

Visualizando arquivos PDF no terminal

Leitura recomendada

Como montar uma partição NTFS ou FAT32

Gravador de área de trabalho nativo do Gnome 3

Gentoo: equery + flaggie

Ubuntu - Configurar volume pelo Terminal

Recuperando GRUB do Ubuntu

  

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