Structures conditionnelles
Objectifs
Comprendre la notion de structure conditionnelle
Savoir faire un
if
en BashSavoir utiliser
elif
etelse
Définition : Structure conditionnelle
En programmation, une structure conditionnelle est une structure qui permet, dans un script ou un programme, d'exécuter des instructions en fonction de conditions basées sur les valeurs de variables.
Exemple :
Voici un exemple rédigé (on parle d'un algorithme) d'une structure conditionnelle.
SI "mavariable" est plus grande que "12"
ALORS
Afficher un message d'erreur
FIN SI
On comprends qu'une condition (« si mavariable est plus grande que 12 »
) est évaluée, et si cette condition est validée alors on exécute l'instruction dans la structure (« Afficher un message d'erreur »
).
Syntaxe :
La même structure en Bash donne :
if [ $mavariable -gt 12 ]
then
echo "Error"
fi
La partie se trouvant entre les crochets est donc la condition. On retrouve bien l'appel à mavariable
(avec le symbole "$
"), que l'on compare à la valeur 12. La comparaison se fait avec l'opérateur -gt
, signifiant Greater Than, qui permet de valider que ce qui se trouve à gauche de l'opérateur est plus grand que ce qui se trouve à droite.
Attention :
Une condition se trouve systématiquement entre crochets, avec un espace entre chaque crochet et la condition. Par exemple écrire [$mavariable -gt 12]
n'est pas valide.
Syntaxe : Les différentes conditions
Il existe de nombreux opérateur pour les conditions, voici quelques exemples pour les comparaison de variables contenant du texte.
| Vérifie que la variable |
| Vérifie que les deux variables sont différentes |
| Vérifie si la variable est vide (pas de texte) ou inexistante. |
| Vérifie si la variable est non vide |
D'autres permettent la comparaison de nombres.
| Vérifie que les 2 nombres sont égaux |
| Vérifie que les 2 nombres ne sont pas égaux |
| Vérifie si |
| Vérifie si |
| Vérifie si |
| Vérifie si |
Enfin certains permettent de faire des tests sur des fichiers.
| Vérifie si le fichier existe |
| Vérifie que le fichier est un répertoire. |
| Vérifier que le fichier est un fichier (donc pas un répertoire) |
Méthode : Inversion de condition
Il est possible d'inverser une condition en utilisant la caractère de négation "!
".
if [ ! $mavariable -gt 12 ]
then
echo "Error"
fi
Ici l'instruction dans le bloc if
ne sera exécutée que si mavariable
n'est pas plus grande que 12. La condition est inversée.
Méthode : Sinon
Il est possible de proposer une alternative si la condition première n'est pas respectée.
if [ $mavariable -gt 12 ]
then
echo "Error"
else
echo "Ok"
fi
Si la condition est validée on exécute l'instruction dans le bloc if
, sinon on exécute celle du bloc else
.
Méthode : Sinon si
Il est possible de complexifier les conditions en ajoutant plusieurs alternatives conditionnelles avec le mot clef elif
(contraction de else if).
if [ $mavariable -gt 12 ]
then
echo "Error"
elif [ $mavariable -lt 5 ]
then
echo "Perfect"
else
echo "Ok"
fi
Si la variable est plus grande que 12, alors on affiche "Error", sinon si elle est plus petite que 5 on affiche "Perfect", sinon on affiche "Ok".
À retenir
Les conditions permettent de réaliser différentes instructions de manière conditionnelle. En fonction de la valeur de variables, on peut décider ou non d'exécuter une instruction, et de définir une ou plusieurs alternatives si la condition n'est pas respectée.