Pular para o conteúdo

Cálculos matemáticos no próprio bash

Dica publicada em Linux / Comandos
Daniel Zaia Manzano dzm_linux
Hits: 37.218 Categoria: Linux Subcategoria: Comandos
  • Indicar
  • Impressora
  • Denunciar

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

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

Alterar resolução de tela do terminal (modo texto)

Transformando arquivo PDF em texto puro

Como selecionar absolutamente todo o conteúdo de um diretório no modo texto

Debian - Versão da distribuição

Usando o comando echo para obter informações do sistema

Ordenando as coisas com sort

Solução para ter de volta as bordas e barra de títulos das janelas em zenity no Debian 13.x

Aplicando permissões em arquivos

Derrubando uma tty

#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

Entre na sua conta para comentar.