Introductie tot Bash-scripting
Alex Scriven
Data Scientist
Getallen zijn niet native ingebouwd in de shell, anders dan in de meeste REPL's (console) zoals R en Python
In Python of R kun je dit doen:
>>> 1 + 4
5
Dat geeft direct het resultaat!
Getallen worden niet native ondersteund:
(In de terminal)
1 + 4
bash: 1: command not found
expr is een handig hulpprogramma (net als cat of grep)
Dit werkt nu wel (in de terminal):
expr 1 + 4
5
Mooi!
expr kan geen decimalen aan:
(In terminal)
expr 1 + 2.5
expr: not a decimal number: '2.5'
Geen zorgen! (Er is een oplossing)
bc (basic calculator) is een handig command-lineprogramma.
Je kunt het in de terminal starten en berekeningen doen:

bc gebruiken zonder de rekenmachine te openen kan via piping:
echo "5 + 7.5" | bc
12.5
bc heeft ook een scale-argument voor het aantal decimalen.
echo "10 / 3" | bc
3
echo "scale=3; 10 / 3" | bc
Let op het gebruik van ; om 'regels' in de terminal te scheiden
3.333
We kunnen numerieke variabelen net als stringvariabelen toewijzen:
dog_name='Roger' dog_age=6echo "My dog's name is $dog_name and he is $dog_age years old"
Let op: dog_age="6" werkt, maar maakt het een string!
My dog's name is Roger and he is 6 years old
Een variant op enkelvoudige haakjesnotatie voor numerieke variabelen:
expr 5 + 7
echo $((5 + 7))
12
12
Let op: deze methode gebruikt expr, niet bc (geen decimalen!)
Weet je nog hoe we in de vorige les de shell aanriepen?
Erg handig voor numerieke variabelen:
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
Introductie tot Bash-scripting