Introducere în Bash Scripting
Alex Scriven
Data Scientist
Numerele nu sunt suportate nativ în shell, spre deosebire de REPL-uri (consolă) precum R și Python
În Python sau R puteți scrie:
>>> 1 + 4
5
Și obțineți rezultatul dorit!
Numerele nu sunt suportate nativ:
(În terminal)
1 + 4
bash: 1: command not found
expr este un program utilitar (similar cu cat sau grep)
Aceasta va funcționa acum (în terminal):
expr 1 + 4
5
Excelent!
expr nu poate gestiona nativ zecimalele:
(În terminal)
expr 1 + 2.5
expr: not a decimal number: '2.5'
Nu vă faceți griji! (Există o soluție)
bc (basic calculator) este un program util în linia de comandă.
Îl puteți lansa în terminal și efectua calcule:

Utilizarea bc fără a deschide calculatorul este posibilă prin piping:
echo "5 + 7.5" | bc
12.5
bc are și un argument scale pentru numărul de zecimale.
echo "10 / 3" | bc
3
echo "scale=3; 10 / 3" | bc
Notați utilizarea ; pentru a separa „liniile" în terminal
3.333
Variabilele numerice se atribuie la fel ca cele de tip șir:
dog_name='Roger' dog_age=6echo "My dog's name is $dog_name and he is $dog_age years old"
Atenție: dog_age="6" funcționează, dar o transformă în șir!
My dog's name is Roger and he is 6 years old
O variantă a notației cu paranteze simple pentru variabile numerice:
expr 5 + 7
echo $((5 + 7))
12
12
Atenție: această metodă folosește expr, nu bc (fără zecimale!)
Vă amintiți cum am apelat shell-ul din lecția anterioară?
Folositor în special pentru variabile numerice:
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
Introducere în Bash Scripting