Introduktion till Bash-skriptning
Alex Scriven
Data Scientist
Tal är inte inbyggda i skalet på samma sätt som i de flesta REPL-miljöer (konsol) som R och Python
I Python eller R kan du skriva:
>>> 1 + 4
5
Det ger det förväntade resultatet!
Tal stöds inte nativt:
(I terminalen)
1 + 4
bash: 1: command not found
expr är ett användbart verktyg (precis som cat eller grep)
Detta fungerar nu (i terminalen):
expr 1 + 4
5
Smidigt!
expr hanterar inte decimaltal nativt:
(I terminalen)
expr 1 + 2.5
expr: not a decimal number: '2.5'
Men det finns en lösning!
bc (basic calculator) är ett användbart kommandoradsprogram.
Du kan öppna det i terminalen och utföra beräkningar:

Du kan använda bc utan att öppna kalkylatorn genom att använda pipe:
echo "5 + 7.5" | bc
12.5
bc har också ett scale-argument för antal decimaler.
echo "10 / 3" | bc
3
echo "scale=3; 10 / 3" | bc
Observera att ; används för att separera "rader" i terminalen
3.333
Numeriska variabler tilldelas på samma sätt som strängvariabler:
dog_name='Roger' dog_age=6echo "My dog's name is $dog_name and he is $dog_age years old"
Observera att dog_age="6" fungerar, men gör det till en sträng!
My dog's name is Roger and he is 6 years old
En variant på enkelparentesnotation för numeriska variabler:
expr 5 + 7
echo $((5 + 7))
12
12
Observera att den här metoden använder expr, inte bc (inga decimaler!)
Minns du hur vi anropade skalet i föregående lektion?
Det är mycket användbart för numeriska variabler:
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
Introduktion till Bash-skriptning