50 % de réduction toutes les offres, durée limitée. À partir de $2.48/mo
10 min restantes
Serveurs et OS

Instruction if en Bash : syntaxe, variantes, cas d'usage, commandes et plus encore !

Pius Bodenmann By Pius Bodenmann 10 min de lecture Mis à jour le 28 jan. 2024
scripting bash

En scripting shell, les instructions if en Bash jouent un rôle essentiel en permettant aux développeurs de créer des chemins d'exécution conditionnels selon les situations. Concrètement, les instructions if permettent de prendre des décisions dans les scripts Bash, en tenant compte de facteurs tels que les résultats de tests, les entrées utilisateur ou les états du système. C'est une façon de naviguer entre différentes possibilités.

En Bash, une instruction if suit une structure précise. Elle commence généralement par le mot-clé "if" suivi de la condition à évaluer, du mot-clé "alors", puis d'une ou plusieurs commandes à exécuter si la condition est vraie.

Pour plus de flexibilité, l'instruction if peut également inclure un "elif» (autrement si) entre en jeu lorsque la condition initiale est fausse. Elle permet de tester une condition supplémentaire et d'agir en conséquence. De plus, l'instruction if peut comporter une clause « else » facultative, qui s'exécute si aucune des conditions n'est vérifiée.

En combinant les instructions if avec d'autres commandes Bash et les fonctionnalités du scripting shell, les développeurs peuvent créer des scripts avancés capables d'automatiser des tâches et des processus complexes. Continuez la lecture pour en savoir plus sur l'instruction if en Bash : sa syntaxe, ses cas d'usage et des exemples concrets !

Syntaxe de l'instruction If en Bash

La syntaxe Bash désigne les règles qui régissent la structure et la grammaire des commandes et des scripts écrits dans le langage shell Bash. Elle comprend plusieurs constructions et éléments, notamment :

  • Commandes: Ce sont les programmes exécutables ou les commandes intégrées du shell utilisés pour effectuer des tâches spécifiques. Vous passerez la majeure partie de votre temps en programmation Bash à travailler avec ces lignes.
  • Paramètres: Ce sont les valeurs transmises aux commandes pour préciser des options, des paramètres ou des données d'entrée. Considérez-les comme des conditions définies pour une commande afin d'en spécifier les paramètres d'exécution.
  • Variables: Ce sont des symboles qui représentent des valeurs pouvant être assignées, manipulées ou utilisées dans des expressions. Elles servent couramment à déterminer les valeurs que les commandes et les arguments doivent traiter.
  • Redirections: C'est le mécanisme permettant de rediriger l'entrée, la sortie ou les erreurs vers des fichiers, des périphériques ou d'autres commandes. Sans elles, vos commandes risquent de cibler la mauvaise destination et de corrompre votre code.
  • Tuyaux: C'est un mécanisme qui connecte la sortie d'une commande à l'entrée d'une autre. On les utilise généralement pour construire des lignes de commande conditionnelles complexes dans de grands programmes et pour enchaîner des commandes entre elles.
  • Structures de contrôle: Ce sont des constructions qui régissent le flux d'exécution des commandes, comme les boucles, les conditions et les fonctions. Bien maîtriser les structures de contrôle est essentiel pour écrire des lignes de commande élaborées et apporte une profondeur supplémentaire à votre code.
  • Commentaires: Ce sont des annotations ignorées par le shell, utilisées pour documenter le code ou fournir des explications. Ils constituent des repères précieux lors de l'analyse et du débogage, en particulier dans le cadre de projets en équipe.

La syntaxe Bash doit être correctement rédigée pour que le shell puisse interpréter et exécuter les commandes. Les erreurs de syntaxe peuvent provoquer des messages d'erreur ou un comportement inattendu.

Voici l'instruction if Bash en action :

if condition
then
   command1
   command2
   ...
   commandN
elif condition2
then
   commandA
   commandB
   ...
   commandC
else
   commandX
   commandY
   ...
   commandZ
fi

Dans notre exemple, la « condition » désigne un test qui produit un résultat vrai ou faux. Lorsque la condition est vraie, les commandes spécifiées après le mot-clé « then » sont exécutées. Si l'on souhaite évaluer une condition supplémentaire, on utilise le mot-clé « elif », qui permet d'envisager une autre possibilité. Si aucune des conditions n'est vérifiée, les commandes spécifiées après le mot-clé « else » prennent le relais : c'est en quelque sorte un plan de secours. Enfin, pour marquer la fin de l'instruction if, on utilise le mot-clé « fi ».

Comment fonctionnent les instructions Bash ?

En scripting Bash, l'instruction if est particulièrement utile pour orienter le déroulement d'un script en fonction du résultat d'un test conditionnel. Son rôle consiste à évaluer une condition et, si elle est vérifiée, à exécuter un ensemble précis de commandes.

Voici comment fonctionne concrètement un if dans un script Bash. Le script évalue la condition définie dans le if. Si elle est vraie, les commandes du bloc « then » s'exécutent.

Si la condition est fausse, le script passe à l'évaluation des conditions elif suivantes. Si l'une d'elles est vraie, les commandes du bloc elif correspondant s'exécutent. Si aucune des conditions du if ni des elif n'est vraie, le script exécute les commandes du bloc else, à condition qu'un bloc else soit présent.

En résumé, le if permet de contrôler le flux d'exécution d'un script : selon le résultat d'un test, le script emprunte un chemin différent. Ce test peut s'appuyer sur différents éléments, comme le code de retour d'une commande ou la valeur d'une variable.

L'instruction If en Bash, par l'exemple

Passons de la théorie à la pratique et voyons comment utiliser un if dans un vrai contexte de développement. Voici un exemple qui illustre son fonctionnement :

#!/bin/bash
# set a variable
x=5
# evaluate the variable
if [ $x -gt 4 ]
then
  echo "x is greater than 4."
else
  echo "x is less than or equal to 4."
fi

Dans cet exemple, le if évalue la valeur de la variable x. Si x est supérieur à 4, le script affiche « x is greater than 4 ». Si x est inférieur ou égal à 4, il affiche « x is less than or equal to 4 ».

Maintenant que vous maîtrisez la forme de base du if en Bash, allons plus loin. Nous allons parcourir les variantes une par une : if simple, if imbriqué, if else, if elif else et case.

Le if simple

Commençons par la forme la plus simple. Le if en Bash vérifie une condition et, si elle est vraie, exécute le bloc de commandes correspondant. Voici la syntaxe :

if [ condition ]
then
  commands
fi

Dans ce cas, le script évalue la condition. Si elle est vraie, les commandes spécifiées s'exécutent. Si elle est fausse, le script passe à la commande suivante sans exécuter le bloc « then ».

Les if imbriqués

Un if imbriqué est simplement un if placé à l'intérieur d'un autre if. Cette structure permet d'effectuer des tests plus complexes au sein d'un script. Voici un exemple :

if [ condition1 ]
then
  if [ condition2 ]
  then
    commands
  fi
fi

On peut voir dans les commandes que le script évalue d'abord condition1. Si condition1 est vraie, il évalue ensuite condition2. Si condition2 est également vraie, le script exécute les commandes correspondantes.

Le if else

Le if else permet à votre script de prendre des décisions selon qu'une condition est vraie ou fausse, offrant ainsi un contrôle plus fin sur l'exécution du code. Voici la structure :

if [ condition ]
then
  commands1
else
  commands2
fi

Ce bloc garantit que si la condition est vraie, le script exécute « commands1 ». Dans le cas contraire, il bascule sur « commands2 ».

Le if elif else

Lorsqu'il faut gérer plusieurs conditions et leurs résultats respectifs, le if elif else est la bonne solution. Observez la syntaxe suivante :

if [ condition1 ]
then
  commands1
elif [ condition2 ]
then
  commands2
else
  commands3
fi

Ici, le script évalue d'abord condition1. Si elle est vraie, il exécute commands1. Si condition1 est fausse, il passe à condition2. Si condition2 est vraie, il exécute commands2. Si les deux conditions sont fausses, le script exécute commands3 en guise d'alternative.

Le case

En Bash, le case joue un rôle similaire au switch que l'on trouve dans d'autres langages. Il permet d'exécuter différents blocs de commandes selon la valeur d'une variable. Voici la structure :

case expression in
  pattern1)
    commands1;;
  pattern2)
    commands2;;
  pattern3)
    commands3;;
*)
default commands;;
esac

Ici, le script évalue la variable expression et la compare à différents motifs. Lorsqu'une correspondance est trouvée, le bloc de commandes associé s'exécute. Si aucun motif ne correspond, les commandes par défaut prennent le relais. Le motif astérisque (*) sert de joker et capture tout ce qui n'a pas été couvert.

Les opérateurs logiques en Bash

Les opérateurs logiques sont un autre élément central du if en Bash. Ils permettent de combiner plusieurs conditions et de prendre des décisions selon le résultat de leur évaluation combinée. Bash propose trois opérateurs logiques principaux utilisables dans les if. Voici des exemples pour chacun d'eux.

  • Bash ET (&&):
if [ $age -ge 18 ] && [ "$citizen" == "yes" ]; then
  echo "You meet the criteria for voting."
fi
  • Ou logique (||):
if [ "$status" == "active" ] || [ "$role" == "admin" ]; then
  echo "Access granted."
fi
  • Différent de:
if(( ! $a == "true" )) then 
  echo "a" was initially false. 
else
  echo "a" was initially true. 
fi

Conclusion

Dans cet article, nous avons présenté une introduction aux instructions if en Bash et à leur utilisation. Nous avons également vu comment elles permettent de rendre votre code plus lisible et plus fonctionnel. En utilisant ces instructions conditionnelles de façon efficace, vous pouvez créer des scripts capables de gérer des tâches complexes et de prendre des décisions.

Vous débutez dans l'univers de Linux ? Laissez-nous vous guider dans cette aventure ! Notre Linux VPS est le point de départ idéal pour les débutants : simple à prendre en main, sans compromis sur les fonctionnalités. Grâce à des interfaces intuitives et un support expert, exploiter les capacités d'un serveur Linux n'a jamais été aussi accessible. Que vous montiez un site web, testiez des applications ou exploriez l'univers Linux, notre Linux VPS vous offre un environnement sécurisé et sans prise de tête. Faites vos premiers pas dans l'univers Linux en toute confiance : découvrez nos options Linux VPS dès aujourd'hui et lancez-vous dans votre aventure Linux !

Hébergement Linux VPS

Procurez-vous un Linux VPS économique ou premium pour héberger votre site ou bureau à distance, au meilleur prix du marché. VPS sous Linux KVM pour plus d'efficacité, sur un matériel puissant avec stockage NVMe SSD pour plus de vitesse.

Lire la suite

Questions fréquemment posées

Peut-on utiliser des opérateurs logiques dans les instructions if en Bash ?

Oui, vous pouvez utiliser des opérateurs logiques tels que '&' et '||' dans les instructions if en Bash. Par exemple, if [ $var -gt 0 ] && [ $var -lt 10 ]; then … exécutera le bloc de code si $var est supérieur à 0 et inférieur à 10.

Peut-on utiliser plusieurs conditions dans une seule instruction if ?

Oui, vous pouvez combiner plusieurs conditions dans une seule instruction if en Bash en utilisant des opérateurs logiques tels que -a (ET) ou -o (OU) pour les combiner. Par exemple, if [ $var -gt 0 -a $var -lt 10 ]; then … exécutera le bloc de code si $var est supérieur à 0 ET inférieur à 10.

Peut-on utiliser la substitution de commandes dans les instructions if en Bash ?

Oui, vous pouvez utiliser la substitution de commande dans les instructions if Bash en encadrant la commande avec $() ou des backticks (). Par exemple, if [ $(whoami) == "root" ]; then … exécutera le bloc de code si l'utilisateur actuel est root.

[[ vs [ vs ( vs (( : Quelle est la différence entre ces opérateurs Bash ?

En résumé : [[ sert aux tests conditionnels avancés. [ sert aux tests conditionnels de base. ( sert au regroupement en sous-shell et à l'exécution de commandes. (( sert aux opérations arithmétiques.

 

Partager

Plus d'articles du blog

Continuez la lecture.

Image de couverture des meilleures apps auto-hébergées avec Cosmos Cloud, avec des panneaux d'apps autour d'un tableau de bord Cosmos.
Serveurs et OS

Les meilleures apps auto-hébergées à lancer avec Cosmos Cloud : fichiers, médias, mots de passe, automatisation, et plus

Peut-être avez-vous installé Cosmos Cloud et cherchez les apps qui s'y prêtent, ou peut-être hésitez-vous encore sur Cosmos et voulez voir s'il colle à votre workflow

Nick SilverNick Silver 16 min de lecture
Couverture Portainer vs Cosmos Cloud pour la gestion des apps Docker avec schéma d'installation hybride et blocs ops vs accès en néon.
Serveurs et OS

Portainer ou Cosmos Cloud : le meilleur choix pour gérer vos apps Docker

Si vous connaissez déjà Docker et voulez la voie la plus propre pour faire tourner une stack qui grossit, voici la réponse courte à Portainer vs Cosmos Cloud. Portainer reste le meilleur choix pour la gestion direc

Nick SilverNick Silver 14 min de lecture
Visuel Cosmos Cloud vs CasaOS vs Umbrel montrant trois voies auto-hébergées dans un univers réseau cloud abstrait.
Serveurs et OS

Cosmos Cloud, CasaOS ou Umbrel : quelle plateforme auto-hébergée pour votre installation ?

Réponse courte : CasaOS reste le plus simple pour débuter, Umbrel a l'expérience la plus soignée, et Cosmos Cloud prend tout son sens dès que vous voulez plus de contrôle sur les doma

Nick SilverNick Silver 11 min de lecture

Prêt à déployer ? À partir de 2,48 $/mois.

Cloud indépendant, depuis 2008. AMD EPYC, NVMe, 40 Gbps. Remboursement sous 14 jours.