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 structureif(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é.

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.

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 :
- Affiche un message demandant à l'utilisateur de saisir un nom de fichier.
- Stocke le nom de fichier saisi dans une variable.
- 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 c'est un fichier, il affiche :
- Si non, il affiche un message d'erreur :
Erreur : "[nom_fichier]" n'existe pas.
- Si oui, il doit alors vérifier si c'est un fichier (
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
elseet les cas multiples avecelif. - 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.