Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 48

Structures conditionnelles : if/else

Recommended resources

Bonjour !

Dans la leçon précédente, nous avons fait nos premiers pas dans l'automatisation en écrivant des scripts Bash simples. Vous avez appris à utiliser des variables et à capturer le résultat de commandes, créant ainsi des scripts qui exécutent une série de tâches de manière linéaire. C'était une première étape essentielle.

Aujourd'hui, nous allons rendre nos scripts beaucoup plus intelligents. L'objectif est d'apprendre à utiliser les structures conditionnelles (if, else) pour contrôler l'exécution d'un script. Au lieu de suivre aveuglément une liste de commandes, votre script pourra désormais prendre des décisions, analyser des situations et agir différemment en fonction du contexte. C'est une compétence fondamentale en administration système, qui permet de créer des outils d'automatisation robustes et réactifs.

1. La prise de décision : la structure if

La structure de base pour prendre une décision en Bash est le if. Sa logique est simple : si une certaine condition est vraie, alors exécute un bloc de commandes.

La syntaxe est très stricte :

if [ condition ]
then



    # Commandes à exécuter si la condition est vraie
fi
  • if : Commence la structure conditionnelle.
  • [ condition ] : Le test à effectuer. Attention, les espaces après [ et avant ] sont obligatoires !
  • then : Introduit le bloc de commandes à exécuter si la condition est vraie.
  • fi : Termine la structure if (c'est "if" écrit à l'envers).

Pour bien comprendre cette syntaxe de base, regardons une courte vidéo qui l'illustre avec un exemple simple.

Script Bash - Maitrisez les conditions If, Else, Elif

Cette vidéo d'IT-Connect vous montrera la syntaxe de base d'un if et comment l'utiliser pour faire une comparaison numérique simple.

Regardez la vidéo de 00:42 à 02:56. Concentrez-vous sur la syntaxe if ... then ... fi et sur l'opérateur de comparaison numérique -gt (greater than).


2. Gérer l'alternative : le else

La structure if seule ne gère que le cas où la condition est vraie. Mais que faire si elle est fausse ? C'est là qu'intervient le mot-clé else. Il permet de définir un autre bloc de commandes à exécuter.

La syntaxe devient :

if [ condition ]
then



    # Commandes à exécuter si la condition est VRAIE
else



    # Commandes à exécuter si la condition est FAUSSE
fi

C'est une structure binaire : soit le bloc then est exécuté, soit le bloc else, mais jamais les deux.

Un cas d'usage extrêmement courant pour un administrateur système est de vérifier si un fichier ou un dossier existe avant d'effectuer une opération. La vidéo suivante continue l'exemple précédent puis enchaîne avec ce cas pratique.

Script Bash - Maitrisez les conditions If, Else, Elif

La suite de la vidéo explique comment ajouter un bloc else pour gérer le cas où la condition est fausse. Elle montre ensuite un exemple très concret : tester l'existence d'un fichier.

Regardez la vidéo de 02:46 à 05:35. Portez une attention particulière à l'opérateur de test de fichier -e (exists).


3. Gérer plusieurs conditions : le elif

Parfois, deux options (vrai ou faux) ne suffisent pas. Vous pourriez avoir besoin de tester plusieurs conditions les unes après les autres. Au lieu d'imbriquer des if les uns dans les autres (ce qui rend le code illisible), on utilise elif (une contraction de "else if").

La structure s'étend ainsi :

if [ condition 1 ]
then



    # Exécuté si la condition 1 est vraie
elif [ condition 2 ]
then



    # Exécuté si la condition 1 est fausse ET la condition 2 est vraie
else



    # Exécuté si TOUTES les conditions précédentes sont fausses
fi

Le script évalue les conditions dans l'ordre. Dès qu'une condition est vraie, son bloc then est exécuté et le reste de la structure est ignoré.

Bash Script with If-Elif-Else Conditional Structure
Cet exemple de script montre comment utiliser `if`, `elif` et `else` pour afficher un message différent en fonction de l'heure de la journée. C'est un cas d'usage classique pour illustrer le `elif`.

La vidéo suivante explique et démontre cette structure.

Script Bash - Maitrisez les conditions If, Else, Elif

Visionnez ce segment pour comprendre comment enchaîner plusieurs tests avec elif pour gérer des scénarios plus complexes que le simple vrai/faux.

Regardez de 05:25 à 07:51. Observez comment le script évalue chaque condition séquentiellement.


4. Rendre les scripts interactifs et combiner les conditions

Pour l'instant, nos scripts utilisent des valeurs codées en dur. Rendons-les plus flexibles en demandant une information à l'utilisateur avec la commande read. Nous pourrons ensuite utiliser cette information dans nos conditions.

De plus, les scripts professionnels nécessitent souvent de vérifier plusieurs choses à la fois. Pour cela, on utilise des opérateurs logiques :

  • && (ET) : La condition est vraie si toutes les sous-conditions sont vraies.
  • || (OU) : La condition est vraie si au moins une des sous-conditions est vraie.

Exemple d'interactivité :

🧪 Ton tout premier script Bash expliqué pas à pas ! ( Linux )

Cette vidéo de Test&Code vous montre comment utiliser la commande read pour récupérer une saisie de l'utilisateur, puis comment utiliser un if/else pour traiter cette information.

Regardez de 00:10 à 06:12. La première partie (jusqu'à 03:50) introduit la commande read. La seconde partie applique directement une condition if/else sur la valeur saisie par l'utilisateur.

Exemple d'opérateurs logiques :

Voici un exemple parfait pour un futur administrateur système : un script qui vérifie si deux services critiques sont bien en cours d'exécution.

Bash Script with If-Else and Logical AND for Service Status Check
Ce script utilise l'opérateur `&&` (ET) pour s'assurer que le service SSH **ET** le service Apache2 sont tous les deux actifs avant d'afficher un message de succès.

Pour comprendre comment construire ce type de condition, regardez la dernière partie de la vidéo d'IT-Connect.

Script Bash - Maitrisez les conditions If, Else, Elif

Ce segment final vous apprend à combiner plusieurs tests dans une seule condition if à l'aide des opérateurs logiques. L'exemple de la vérification de l'état de services avec systemctl est particulièrement pertinent pour vous.

Regardez de 07:51 à 10:06. Concentrez-vous sur la syntaxe [ condition1 ] && [ condition2 ].


5. À vous de jouer !

Il est temps de mettre en pratique tout ce que vous avez appris. Voici un exercice qui combine la lecture d'une entrée utilisateur et des conditions imbriquées.

Votre mission :

Créez un script nommé check_file.sh qui effectue les tâches suivantes :

  1. Affiche un message demandant à l'utilisateur de saisir un nom de fichier.
  2. Stocke le nom de fichier saisi dans une variable.
  3. Vérifie si un élément avec ce nom existe dans le répertoire courant.
    • Si oui, il doit alors vérifier si c'est un fichier (-f) ou un répertoire (-d).
      • Si c'est un fichier, il affiche : "[nom_fichier]" est un fichier.
      • Si c'est un répertoire, il affiche : "[nom_fichier]" est un répertoire.
    • Si non, il affiche un message d'erreur : Erreur : "[nom_fichier]" n'existe pas.

Indice : Vous aurez besoin d'une structure if/else imbriquée dans le premier if. Voici les opérateurs de test de fichier dont vous aurez besoin :

  • -e : existe (fichier ou répertoire)
  • -f : est un fichier régulier
  • -d : est un répertoire

Prenez le temps de construire ce script. C'est en pratiquant que ces concepts deviendront une seconde nature.


Pour vous aider à mémoriser la syntaxe et les différents opérateurs, vous pouvez consulter cet article, qui est la version texte de la vidéo principale que nous avons suivie. Il constitue une excellente référence.

Maîtriser les conditions If, Else et Elif en Bash

Cet article d'IT-Connect résume tout ce que nous avons vu : la syntaxe des if, else, elif, les exemples de comparaison numérique, de test de fichier et l'utilisation des opérateurs logiques.

Parcourez les sections II, III, IV et V. Ne passez pas trop de temps sur le code, mais assurez-vous de bien comprendre la syntaxe et les exemples fournis. C'est un bon aide-mémoire.


Conclusion

Félicitations ! Vos scripts ne sont plus de simples listes de tâches ; ils sont désormais capables de s'adapter et de réagir.

Les points clés à retenir :

  • La structure de base est if [ condition ]; then ... fi.
  • On gère le cas "faux" avec else et les cas multiples avec elif.
  • Les conditions reposent sur des opérateurs de comparaison (numériques comme -gt, textuels comme =) et des opérateurs de test (de fichier comme -e, -f).
  • On peut combiner plusieurs tests avec les opérateurs logiques && (ET) et || (OU) pour construire une logique complexe.

Dans la prochaine leçon, nous franchirons une nouvelle étape dans l'automatisation. Nous verrons comment utiliser les boucles (for, while) pour exécuter des actions de manière répétitive sur une liste d'éléments. Si if permet de prendre une décision, les boucles permettent d'appliquer cette décision à des centaines de fichiers ou d'utilisateurs en une seule fois.