Cálculos matemáticos no próprio bash

Publicado por Daniel Zaia Manzano em 13/06/2013

[ Hits: 36.747 ]

 


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

Debug em Shell Scripts

ACL - Implementando permissões de arquivos e diretórios personalizados

Como filtrar exatamente uma palavra no terminal

Acompanhando progresso na cópia de arquivos

Eliminando mensagem de aviso de configuração de rede no Debian

Leitura recomendada

Repetição automática de comando

Gerar arquivo da saída do MD5SUM

Aplicando permissões em arquivos

Solicitar a alteração de senha no primeiro login - Samba

Wget - baixar tipo específico de arquivos de url

  

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