TUTO BASH – Comment utiliser le if then else avec exemple

Le langage de script BASH (Bourne Again SHell) est un outil puissant pour automatiser des tâches sur les systèmes d’exploitation basés sur Unix. Parmi ses nombreuses fonctionnalités, la structure de contrôle if then else est largement utilisée pour prendre des décisions conditionnelles dans les scripts. Dans cet article, nous explorerons comment utiliser cette structure avec des exemples concrets pour vous aider à maîtriser ce concept fondamental de BASH.

Introduction à BASH

BASH est un interpréteur de ligne de commande qui permet aux utilisateurs d’interagir avec le système d’exploitation. Il est disponible sur la plupart des distributions Linux et sur d’autres systèmes Unix-like tels que macOS. BASH est non seulement un shell puissant pour la saisie de commandes, mais aussi un langage de script complet, permettant d’écrire des programmes pour automatiser des tâches répétitives.

Le langage BASH offre une syntaxe simple et compréhensible, ce qui en fait un bon point de départ pour ceux qui veulent apprendre la programmation de scripts sous Unix. Avec BASH, il est possible de créer des scripts pour effectuer une grande variété d’opérations, allant de la gestion de fichiers à l’exécution de commandes complexes.

L’un des aspects les plus utiles de BASH est sa capacité à exécuter des instructions conditionnelles, permettant au script de prendre des décisions en fonction des conditions données. Cela se fait généralement à l’aide de la structure de contrôle if then else, que nous allons expliquer en détail dans la section suivante.

Utilisation de if then else

La structure if then else est utilisée pour exécuter des commandes basées sur le résultat d’une condition. La syntaxe de base est simple : le mot-clé « if » est suivi par la condition à évaluer, puis par le mot-clé « then » et les commandes à exécuter si la condition est vraie. Si elle est fausse, le script peut exécuter une autre série de commandes après le mot-clé « else« .

La condition à évaluer peut être une comparaison de nombres, de chaînes de caractères, ou le résultat d’une commande. Bash utilise des tests conditionnels, tels que:

  • -eq pour l’égalité
  • -ne pour la non-égalité
  • -lt pour moins que
  • -le pour moins ou égal
  • -gt pour plus que
  • -ge pour plus ou égal

Ceci fonctionne pour les comparaisons numériques, et les opérateurs de comparaison de chaînes standards pour les chaînes de caractères.

Il est important de bien comprendre la syntaxe et le fonctionnement du if then else pour éviter des erreurs courantes, telles que l’oubli du mot-clé « fi » pour fermer la structure conditionnelle. De plus, il est conseillé d’utiliser l’indentation pour rendre le script plus lisible et de commenter votre code pour clarifier la logique derrière les conditions.

Exemple concret d’utilisation

Exemple 1 : Vérification d’un fichier

Prenons un exemple simple d’un script qui vérifie si un fichier existe dans le répertoire courant. Si le fichier existe, le script affichera un message indiquant que le fichier a été trouvé. Sinon, il affichera un message d’erreur.

#!/bin/bash

fichier="monfichier.txt"

if [ -e "$fichier" ]; then
  echo "Le fichier $fichier existe."
else
  echo "Erreur : Le fichier $fichier n'existe pas."
fi

Dans cet exemple, la commande test est utilisée avec l’opérateur -e pour vérifier l’existence du fichier. Si la condition est vraie, le message de confirmation est affiché, sinon le message d’erreur est affiché. Remarquez l’utilisation des guillemets autour de la variable $fichier pour gérer correctement les noms de fichiers avec des espaces.

Exemple 2 : Vérification d’un nombre

#!/bin/bash

nombre=8

if (( nombre % 2 == 0 )); then
    echo "$nombre est un nombre pair."
else
    echo "$nombre est un nombre impair."
fi

Exemple 3 : Vérification de la présence d’un répertoire et création si absent

#!/bin/bash

repertoire="nouveau_repertoire"

if [ -d "$repertoire" ]; then
    echo "Le répertoire $repertoire existe déjà."
else
    mkdir "$repertoire"
    echo "Le répertoire $repertoire a été créé."
fi

Exemple 4 : Vérification des droits d’accès à un fichier

#!/bin/bash

fichier="mon_fichier.txt"

if [ -r "$fichier" ] && [ -w "$fichier" ]; then
    echo "L'utilisateur a les droits de lecture et d'écriture sur $fichier."
else
    echo "L'utilisateur n'a pas les droits de lecture et/ou d'écriture sur $fichier."
fi

Exemple 5 : Comparaison de chaînes de caractères

#!/bin/bash

chaine1="Bonjour"
chaine2="Bonjour"

if [ "$chaine1" = "$chaine2" ]; then
    echo "Les deux chaînes sont identiques."
else
    echo "Les deux chaînes sont différentes."
fi

Astuces et bonnes pratiques

Lors de l’utilisation de if then else dans BASH, il est important de toujours tester votre script avec différentes conditions pour vous assurer qu’il se comporte comme prévu. Utilisez des données de test variées pour couvrir tous les cas possibles.

Il est également recommandé d’utiliser des guillemets autour des variables dans les conditions pour éviter des erreurs si la variable contient des espaces ou est vide. De plus, l’utilisation de la double parenthèse (( )) pour les comparaisons numériques est préférable car elle offre une syntaxe plus flexible et une meilleure lisibilité.

Enfin, n’hésitez pas à utiliser des fonctions pour regrouper des commandes qui sont répétées dans différentes parties de votre script. Cela rendra votre code plus modulaire, plus facile à maintenir et à comprendre.

💡 Astuce : Savez vous convertir une formule en valeur sous Excel ?

Conclusion

La compréhension de la structure if then else est essentielle pour quiconque souhaite maîtriser le scripting BASH. Avec les exemples et les conseils fournis dans cet article, vous devriez être en mesure de l’utiliser efficacement dans vos scripts. Gardez en tête les bonnes pratiques et testez toujours votre code pour garantir sa fiabilité. Bon scripting !

Articles similaires

Articles populaires