Somar variáveis nos shells BASH e sh

Publicado por Rodrigo Brito Alves em 28/09/2007

[ Hits: 68.490 ]

Blog: https://www.facebook.com/rodrigo.b.alves

 


Somar variáveis nos shells BASH e sh



Veja como usar o shell para somar variáveis.

Digite no shell:

$ A=10
$ B=5


Para somar o conteúdo da variável A com o da B usaremos o comando echo, veja neste exemplo abaixo:

$ echo $(($A+$B))
15

O resultado é 15.

Outras dicas deste autor

Limitar comandos que o usuário pede executar

Redirecionar a porta 80 para 3128 com iptables, menos a tua máquina

Backup em DVD com growisofs

Erro "depende: initrd-tools"

Quota no Debian Etch

Leitura recomendada

Como criar a configuração de temas para linguagens no gedit

Site para montar regras de iptables

Compilar programas com muitos parâmetros

Variáveis compostas em shell script

Shell Script - Imprimindo nome da própria função em execução

  

Comentários
[1] Comentário enviado por roddy em 30/09/2007 - 05:07h

Olha que encontrei nesta madrugada:

http://www.vivaolinux.com.br/comunidades/verTopico.php?codigo=85&codtopico=6020

[2] Comentário enviado por elgio em 30/09/2007 - 21:33h

Outra maneira:

let C="$A + $B"

Isto falando apenas de bash, com seus comandos INTERNOS.
Agora se meter ai as calculadoras de linha de comando do Linux, como o bc e o dc... Sai de perto. Elas NÃO TEM limite de números!

Veja:
echo "34 * 45"|bc

Agora:
echo "34 ^123"|bc

Aqui o ^ significa POTÊNCIA. É o 34 elevado na potência 123!
Dá um numero bem grande...


[3] Comentário enviado por volcom em 07/04/2010 - 16:20h

Muito bom!!!

Inclusive os comentários que completam!!!

Abraço

[4] Comentário enviado por guisawyer em 07/05/2014 - 18:32h

Mas como eu somo número decimais?!

Aqui deu erro ao fazer echo $(( 0.1 + 1.2 ))

bash: 0.1 + 1.2 : syntax error: invalid arithmetic operator (error token is ".1 + 1.2 ")

[5] Comentário enviado por marlonla72 em 11/05/2020 - 13:52h

Prezados, se quiser usar parâmetros passados a frente pode usar dentro do arquivo teste.sh
echo $(expr $1 + $2)
# a chamada fica ./teste.sh 10 30

# retorna 40



Contribuir com comentário