Introductie tot Bash-scripting
Alex Scriven
Data Scientist
Een basis-IF in Bash heeft deze structuur:
if [ CONDITION ]; then# SOME CODEelse # SOME OTHER CODEfi
Twee tips:
];We kunnen een eenvoudige stringvergelijking in een IF doen:
x="Queen"if [ $x == "King" ]; thenecho "$x is a King!"else echo "$x is not a King!" fi
Queen is not a King!
Je kunt ook != gebruiken voor 'niet gelijk aan'
Rekenkundige IF's kunnen dubbele haakjes gebruiken:
x=10if (($x > 5)); then echo "$x is more than 5!" fi
10 is more than 5!
Rekenkundige IF's kunnen ook vierkante haken en een rekenvlag gebruiken in plaats van (>, <, =, != etc.):
-eq voor 'gelijk aan'-ne voor 'niet gelijk aan'-lt voor 'kleiner dan'-le voor 'kleiner of gelijk aan'-gt voor 'groter dan'-ge voor 'groter of gelijk aan'Hier maken we het laatste voorbeeld opnieuw met vierkante haken:
x=10
if [ $x -gt 5 ]; then
echo "$x is more than 5!"
fi
10 is more than 5!
Bash heeft ook verschillende bestandsflags zoals:
-e als het bestand bestaat-s als het bestand bestaat en groter is dan nul-r als het bestand bestaat en leesbaar is-w als het bestand bestaat en beschrijfbaar isEn nog meer:
Om voorwaarden te combineren (AND) of OR te gebruiken in Bash, gebruik je:
&& voor AND|| voor ORIn Bash kun je conditionals als volgt ketenen:
x=10
if [ $x -gt 5 ] && [ $x -lt 11 ]; then
echo "$x is more than 5 and less than 11!"
fi
Of dubbele rechte haken gebruiken:
x=10
if [[ $x -gt 5 && $x -lt 11 ]]; then
echo "$x is more than 5 and less than 11!"
fi
Je kunt ook veel commandoregelprogramma's direct in de voorwaarde gebruiken, waarbij je de vierkante haken weglaat.
Bijvoorbeeld, als words.txt 'Hello World!' bevat:
if grep -q Hello words.txt; then
echo "Hello is inside!"
fi
Hello is inside!
Je kunt ook een shell-in-een-shell aanroepen voor je voorwaarde.
Herschrijven we het vorige voorbeeld; dit geeft hetzelfde resultaat.
if $(grep -q Hello words.txt); then
echo "Hello is inside!"
fi
Hello is inside!
Introductie tot Bash-scripting