Introduction à la programmation Bash
Alex Scriven
Data Scientist
Une instruction IF de base en Bash suit cette structure :
if [ CONDITION ]; then# SOME CODEelse # SOME OTHER CODEfi
Deux conseils :
];On peut comparer des chaînes dans une instruction IF :
x="Queen"if [ $x == "King" ]; thenecho "$x is a King!"else echo "$x is not a King!" fi
Queen is not a King!
Vous pouvez aussi utiliser != pour « différent de »
Les IF arithmétiques peuvent utiliser la structure à doubles parenthèses :
x=10if (($x > 5)); then echo "$x is more than 5!" fi
10 is more than 5!
Les IF arithmétiques peuvent aussi utiliser des crochets et un indicateur arithmétique plutôt que (>, <, =, !=, etc.) :
-eq pour « égal à »-ne pour « différent de »-lt pour « plus petit que »-le pour « plus petit ou égal à »-gt pour « plus grand que »-ge pour « plus grand ou égal à »Reprenons l'exemple précédent avec la notation à crochets :
x=10
if [ $x -gt 5 ]; then
echo "$x is more than 5!"
fi
10 is more than 5!
Bash offre aussi divers indicateurs liés aux fichiers, par exemple :
-e si le fichier existe-s si le fichier existe et a une taille supérieure à zéro-r si le fichier existe et est lisible-w si le fichier existe et est inscriptibleEt plusieurs autres :
Pour combiner des conditions (ET) ou utiliser OU en Bash, servez-vous des symboles suivants :
&& pour AND|| pour OREn Bash, vous pouvez enchaîner les conditions ainsi :
x=10
if [ $x -gt 5 ] && [ $x -lt 11 ]; then
echo "$x is more than 5 and less than 11!"
fi
Ou utiliser la notation à doubles crochets :
x=10
if [[ $x -gt 5 && $x -lt 11 ]]; then
echo "$x is more than 5 and less than 11!"
fi
Vous pouvez aussi utiliser plusieurs programmes en ligne de commande directement dans la condition, sans crochets.
Par exemple, si le fichier words.txt contient « Hello World! » :
if grep -q Hello words.txt; then
echo "Hello is inside!"
fi
Hello is inside!
Vous pouvez aussi appeler un sous-shell dans votre condition.
Réécrivons l'exemple précédent ; le résultat sera le même.
if $(grep -q Hello words.txt); then
echo "Hello is inside!"
fi
Hello is inside!
Introduction à la programmation Bash