Les conditions dans les scripts bash peuvent être un sujet intimidant pour les débutants, mais elles sont indispensables pour quiconque souhaite écrire des scripts shell efficaces. L’une des constructions les plus courantes et cruciales est la structure conditionnelle if else in bash shell. Comprendre comment utiliser ces commandes permet de contrôler le flux d’exécution de vos scripts Bash avec précision.
Qu’est-ce que la structure « if else » en Bash ?
La structure if else en bash permet d’évaluer une condition et d’exécuter des commandes basées sur cette évaluation. C’est une composante essentielle de la logique de bash qui aide à rendre les scripts plus interactifs et intelligents.

Voici un exemple simple :
if [ condition ]; then
commande-si-condition-vraie
else
commande-si-condition-fausse
fi
Cette syntaxe des conditions peut sembler complexe au premier abord, mais elle devient rapidement intuitive avec un peu de pratique. Examinons chaque partie de cette structure de plus près.
If : l’instruction de départ
L’instruction if sert à évaluer une condition. La condition est placée entre crochets ou double parenthèses, selon ce que vous voulez vérifier. Les types de conditions incluent :
- Comparaisons numériques
- Comparaisons de chaînes de caractères
- Vérification de fichiers (existe, est lisible, etc.)
Par exemple, pour tester si une variable est égale à 10 :
if [ "$variable" -eq 10 ]; then
echo "La variable est égale à 10."
fi
Les guillemets autour de $variable sont essentiels pour éviter des erreurs si la variable contient des espaces ou est vide. Retrouvez notre article sur tout savoir sur ConfigMgr : un guide complet.
Else : gérer l’alternative
Lorsque la condition de if n’est pas remplie, l’option else prend le relais pour exécuter une alternative. Ce bloc est facultatif mais très utile pour couvrir tous les scénarios possibles.
if [ "$nombre" -gt 100 ]; then
echo "Le nombre est supérieur à 100."
else
echo "Le nombre est 100 ou moins."
fi
Dans cet exemple, si nombre est supérieur à 100, le premier message s’affiche. Sinon, c’est le second message qui sera montré.
Elif : ajouter plusieurs conditions
Souvent, il ne suffit pas d’avoir une seule condition ou une alternative unique. Le mot-clé elif, contraction de « else if », permet de tester plusieurs conditions successives avant de se rabattre sur else.
if [ "$age" -lt 18 ]; then
echo "Mineur"
elif [ "$age" -ge 18 ] && [ "$age" -lt 65 ]; then
echo "Adulte"
else
echo "Senior"
fi
Ce script vérifie trois cas distincts : en dessous de 18 ans, entre 18 et 64 ans inclus, et enfin 65 ans ou plus.
Éléments clés de la condition en Bash
Prenons un moment pour discuter de quelques mots-clés shell souvent utilisés dans les conditions Bash. Cela peut rendre votre code plus clair et moins sujet aux erreurs.
Les comparaisons numériques
Pour comparer des nombres, on utilise des opérateurs comme -eq, -ne, -gt, -lt, -ge et -le :
- -eq : égal à
- -ne : différent de
- -gt : supérieur à
- -lt : inférieur à
- -ge : supérieur ou égal à
- -le : inférieur ou égal à
Ces opérateurs sont essentiels pour toute évaluation des conditions basée sur des valeurs numériques.
Les comparaisons de chaînes de caractères
Comparer des chaînes de caractères requiert une syntaxe différente :
- = : égalité de chaînes
- != : inégalité de chaînes
- > : lexicographiquement plus grand
- < : lexicographiquement plus petit
Par exemple :
if [ "$nom" = "Alice" ]; then
echo "Bonjour, Alice !"
fi
N’oubliez pas de toujours placer les variables entre guillemets pour éviter des comportements inattendus.
Boucle « case » et son utilité
Bien que les instructions if else soient puissantes, il existe des moments où utiliser des boucles case peut rendre votre script plus clair et facile à lire, surtout lorsque vous avez beaucoup de conditions différentes à évaluer.
Exemple :
case $choix in
1)
echo "Option 1 sélectionnée."
;;
2)
echo "Option 2 sélectionnée."
;;
*)
echo "Option par défaut"
;;
esac
Ici, la variable $choix est comparée contre plusieurs motifs, chacun ayant ses propres commandes. C’est particulièrement utile pour les menus interactifs ou les scripts nécessitant de multiples choix utilisateur.
Contrôle du flux d’exécution avec case
Le contrôle du flux d’exécution est essentiel pour créer des scripts shell robustes. En utilisant des constructions comme if else et case, vous pouvez diriger précisément ce que fait votre script en fonction des conditions rencontrées.

Imaginez un script pour installer différents logiciels en fonction de l’OS détecté :
os=$(uname)
case "$os" in
Linux)
sudo apt-get update
sudo apt-get install vim -y
;;
Darwin)
brew update
brew install vim
;;
*)
echo "Système non reconnu."
;;
esac
Ce script détecte l’OS et exécute les commandes appropriées pour installer Vim, illustrant ainsi comment case peut simplifier le contrôle du flux d’exécution.
Meilleures pratiques pour l’utilisation des conditions
Lors de l’écriture de conditions dans les scripts Bash, voici quelques conseils pratiques :
- Testez vos scripts dans un environnement de test avant de les déployer en production.
- Ajoutez des commentaires pour expliquer la logique complexe.
- Utilisez des noms de variables parlants afin de rendre le script plus compréhensible.
- Gardez vos conditions aussi simples que possible pour éviter les erreurs.
Gestion des erreurs
Il est crucial d’ajouter des mécanismes de gestion des erreurs, surtout pour les utilisateurs novices. Par exemple, assurez-vous que les entrées utilisateur sont valides :
if ! [[ "$input" =~ ^[0-9]+$ ]]; then
echo "Erreur : Veuillez entrer un nombre valide."
exit 1
fi
Ceci bloque le script en cas d’entrée incorrecte, alertant l’utilisateur immédiatement.
Validation des fichiers et répertoires
Les scripts Shell doivent souvent travailler avec des fichiers et répertoires. Assurez-vous qu’ils existent et possèdent les permissions nécessaires :
if [ -f "/chemin/vers/fichier" ]; then
echo "Fichier trouvé."
else
echo "Fichier introuvable."
fi
if [ -d "/chemin/vers/repertoire" ]; then
echo "Répertoire trouvé."
else
echo "Répertoire introuvable."
fi
De telles vérifications peuvent prévenir bien des problèmes pendant l’exécution des scripts. Retrouvez également notre article sur Google dorks comment faire l’installation ?
Maîtriser les conditions dans les scripts bash ouvre la porte à des possibilités infinies pour automatiser les tâches sur votre système. Que vous soyez nouveau dans l’écriture des scripts shell ou un vétéran cherchant à raffiner votre technique, comprendre et utiliser les structures conditionnelles if else et case est fondamental. Avec de la pratique et de l’expérimentation, vous serez capable de créer des scripts performants et fiables en un rien de temps.
FAQ sur la structure conditionnelle if else en Bash
Qu’est-ce que la structure « if else » en Bash et comment fonctionne-t-elle ?
La structure « if else » en Bash permet d’évaluer une condition et d’exécuter des commandes en fonction du résultat de cette évaluation. Si la condition est vraie, le bloc de commandes associé à « if » est exécuté ; sinon, celui associé à « else » prend le relais. Cela permet de contrôler le flux d’exécution des scripts en fonction de divers critères.
Comment fonctionne l’opérateur « elif » dans une structure « if else » ?
L’opérateur « elif » (else if) permet de tester plusieurs conditions successives. Si la condition de « if » échoue, le script passe à la condition suivante dans « elif », et ainsi de suite. Si aucune condition n’est remplie, le bloc « else » sera exécuté par défaut.
Quels sont les opérateurs utilisés pour comparer des nombres et des chaînes en Bash ?
Pour comparer des nombres, on utilise des opérateurs comme -eq (égal), -ne (différent), -gt (supérieur), -lt (inférieur), -ge (supérieur ou égal), et -le (inférieur ou égal). Pour les chaînes, on utilise = (égal), != (différent), > (plus grand lexicographiquement), et < (plus petit lexicographiquement).
Comment utiliser la boucle « case » pour simplifier les conditions multiples ?
La boucle « case » permet de tester plusieurs conditions en fonction de la valeur d’une variable. Chaque cas est suivi de son propre bloc de commandes. C’est particulièrement utile lorsqu’il y a de multiples choix possibles, comme dans un menu interactif.
Comment gérer les erreurs dans les scripts Bash ?
Pour gérer les erreurs dans Bash, il est conseillé d’utiliser des validations d’entrées, des tests sur les fichiers et répertoires, et d’ajouter des mécanismes de sortie avec des messages d’erreur. Par exemple, en vérifiant qu’une entrée utilisateur est un nombre valide avec [[ "$input" =~ ^[0-9]+$ ]], on peut éviter des erreurs de saisie et informer l’utilisateur immédiatement.

