Introdução ao Bash Scripting
Alex Scriven
Data Scientist
Números não são nativos no shell como na maioria dos REPLs (console), como R e Python
Em Python ou R você pode fazer:
>>> 1 + 4
5
Isso vai retornar o que você quer!
Números não são suportados nativamente:
(No terminal)
1 + 4
bash: 1: command not found
expr é um utilitário útil (como cat ou grep)
Isso agora funciona (no terminal):
expr 1 + 4
5
Muito bom!
expr não lida nativamente com casas decimais:
(No terminal)
expr 1 + 2.5
expr: not a decimal number: '2.5'
Mas não se preocupe! (Há solução)
bc (basic calculator) é um programa de linha de comando útil.
Você pode abri-lo no terminal e fazer cálculos:

Usar o bc sem abrir a calculadora é possível com pipe:
echo "5 + 7.5" | bc
12.5
bc também tem o argumento scale para definir casas decimais.
echo "10 / 3" | bc
3
echo "scale=3; 10 / 3" | bc
Note o uso de ; para separar "linhas" no terminal
3.333
Podemos atribuir variáveis numéricas como variáveis de string:
dog_name='Roger' dog_age=6echo "My dog's name is $dog_name and he is $dog_age years old"
Atenção: dog_age="6" funciona, mas vira string!
My dog's name is Roger and he is 6 years old
Uma variação da notação de variável com colchetes simples para números:
expr 5 + 7
echo $((5 + 7))
12
12
Atenção: este método usa expr, não bc (sem decimais!)
Lembra como chamamos o shell na lição anterior?
Muito útil para variáveis numéricas:
model1=87.65 model2=89.20echo "The total score is $(echo "$model1 + $model2" | bc)"echo "The average score is $(echo "($model1 + $model2) / 2" | bc)"
The total score is 176.85
The average score is 88
Introdução ao Bash Scripting