GNU/Linux >> Tutoriels Linux >  >> Linux

Syntaxe Bash If Else avec exemples

Lorsque vous travaillez avec des scripts Bash et shell, vous devrez peut-être utiliser des conditions dans votre script.

En programmation, les conditions sont cruciales :elles sont utilisées pour affirmer si certaines conditions sont vraies ou non.

Dans ce tutoriel, nous allons nous intéresser à l'une des instructions conditionnelles du langage Bash :l'instruction Bash if else.

Nous allons voir comment vous pouvez utiliser cette instruction pour exécuter vos scripts de manière conditionnelle.

Vous apprendrez également comment utiliser Bash if else imbriqué instructions pour créer un code plus complexe.

Instruction Bash If Else

Afin d'exécuter une instruction Bash "if else", vous devez utiliser quatre mots clés différents :if, then, else et fi :

  • si :représente la condition que vous souhaitez vérifier ;
  • puis :si la condition précédente est vraie, alors exécutez une commande spécifique ;
  • autrement :si la condition précédente est fausse, alors exécutez une autre commande ;
  • fi  :ferme l'instruction "if, then, else".

Lorsque vous utilisez l'instruction "if else", vous devrez placer les conditions entre crochets simples ou doubles.

if [[ condition ]]
then
  <execute command>
else
  <execute another command>
fi

Notez que l'instruction "ELSE" est facultative , si vous l'omettez, rien ne sera exécuté si la condition est évaluée comme fausse.

Remarque  :vous devez séparer la condition des crochets par un espace, sinon vous risquez d'obtenir une erreur de syntaxe.

Exemples Si Sinon

Maintenant que vous en savez plus sur le Bash "if else" déclaration, voyons comment vous pouvez l'utiliser dans des exemples concrets.

Dans cette section, nous allons construire un script qui affiche un message s'il est exécuté par l'utilisateur root.

Si le script n'est pas exécuté par l'utilisateur root, il va écrire un autre message personnalisé.

Afin de vérifier si le script est exécuté par root, nous devons voir si l'UID de l'appelant est égal à zéro.

#!/bin/bash

# If the user is root, its UID is zero.

if [ $UID  -eq  0 ]
then
  echo "You are root!"
else
  echo "You are not root."
fi

Comme indiqué précédemment, le "else ” la déclaration n'est pas obligatoire.

Si nous omettons dans notre script créé plus tôt, nous serions toujours en mesure d'exécuter la première instruction "then".

#!/bin/bash

# If the user is root, its UID is zero.

if [ $UID  -eq  0 ]
then
  echo "You are root!"
fi

Maintenant, que se passe-t-il si vous souhaitez ajouter des instructions "if" supplémentaires à vos scripts ?

Déclaration Bash If Elif

Le "Si Elif ” est utilisée dans Bash afin d'ajouter une instruction “if” supplémentaire à vos scripts.

Pour exécuter une instruction Bash "if elif", vous devez utiliser cinq mots clés différents :if, then, elif, else et fi :

  • si :représente la condition que vous souhaitez vérifier ;
  • puis :si la condition précédente est vraie, alors exécutez une commande spécifique ;
  • elif  :utilisé pour ajouter une condition supplémentaire à votre déclaration ;
  • autrement :si les conditions précédentes sont fausses, exécuter une autre commande ;
  • fi :ferme l'instruction "if, elif, then".
if [[ condition ]]
then
  <execute command>
elif [[ condition ]]
then
  <execute another command>
else
  <execute default command>
fi

Encore une fois, l'instruction "ELSE" est facultative, vous pouvez donc l'omettre si vous n'avez pas besoin d'une instruction par défaut.

if [[ condition ]]
then
  <execute command>
elif [[ condition ]]
then
  <execute another command>
fi

Si Elif Exemples

Dans notre section précédente, nous avons utilisé le "if else ” pour vérifier si un utilisateur est root ou non.

Dans cette section, nous allons vérifier si l'utilisateur est root ou si l'utilisateur a un UID de 1002.

Si ce n'est pas le cas, nous allons quitter le script et renvoyer l'invite à l'utilisateur.

if [[ $UID  -eq  0 ]]
then
  echo "You are root!"
elif [[ $UID  -eq 1002 ]]
then
  echo "You are user, welcome!"
else
  echo "You are not welcome here."
  exit 1;
fi

Félicitations, vous savez maintenant comment utiliser le "if elif ” déclaration !

Et maintenant, que se passe-t-il si vous voulez avoir plusieurs conditions sous la même instruction "if" ?

Plusieurs conditions dans If Else

Afin d'avoir plusieurs conditions écrites dans la même instruction "if else", vous devez séparer vos conditions avec un opérateur "AND" ou un opérateur "OR".

# AND operator used in if else.

if [[ <condition_1> && <condition_2> ]];
then
   <execute command>
fi

# OR operator used in if else.
if [[ <condition_1> || <condition_2> ]];
then
   <execute_command>
else
   <execute_another_command>
fi

Par exemple, si vous voulez écrire un script qui vérifie que vous êtes l'utilisateur root et que vous avez fourni le bon paramètre, vous écrivez :

#!/bin/bash
 
# If the user is root and the first parameter provided is 0.
if [[ $UID -eq 0 && $1 -eq 0 ]];
then
    echo "You provided the correct parameters"
else
    echo "Wrong parameters, try again"
fi

Instructions if else imbriquées

Dans certains cas, vous souhaitez implémenter des conditions imbriquées afin que les conditions soient vérifiées dans des conditions préliminaires.

Afin d'avoir des instructions "if else" imbriquées, il vous suffit d'inclure l'instruction "if" dans une autre instruction "if" et de fermer votre instruction imbriquée avant celle englobante.

if [[ condition ]]
then  
  if [[ other condition ]]
  then
    <execute command>
  else
    <execute another command>
  fi
fi

Remarque :assurez-vous d'avoir une instruction "fi" de fermeture pour chaque instruction "if" que vous ouvrez. Un seul "fi" n'est tout simplement pas suffisant pour plusieurs déclarations "if".

Exemples d'instructions imbriquées

Par exemple, supposons que vous souhaitiez vérifier que l'utilisateur est root avant de vérifier que le premier argument fourni est zéro.

Pour résoudre ce problème, vous écririez une instruction imbriquée "if, then, else" de la manière suivante :

#!/bin/bash

if [[ $UID -eq 0 ]]
then  
  if [[ $1 -eq 0 ]]
  then
    echo "You are allowed to execute this script."
  else
    echo "You should have provided 0 as the first argument."
  fi
fi

Tests bash

Comme vous l'avez probablement remarqué, dans les sections précédentes, nous avons utilisé l'opérateur "-eq" afin de comparer une valeur de variable à un nombre.

Nous avons fait une simple vérification de l'égalité, mais que se passe-t-il si vous voulez avoir une vérification de l'inégalité ?

Et si vous vouliez vérifier si une valeur est supérieure à un nombre donné par exemple ?

Pour ce faire, vous aurez besoin de tests Bash .

Les tests bash sont un ensemble d'opérateurs que vous pouvez utiliser dans vos instructions conditionnelles afin de comparer des valeurs entre elles.

Les tests Bash peuvent être répertoriés en exécutant la commande "help test".

$ help test

Lorsque vous écrivez des tests Bash, vous avez essentiellement trois options :

  • Écrire des conditions sur le fichier et les répertoires :s'ils existent, s'il s'agit d'un fichier personnage, d'un fichier périphérique, etc. ;
  • Écrire des conditions sur des nombres :s'ils sont égaux entre eux, si l'un est supérieur à l'autre ;
  • Écrire des conditions sur des chaînes  :si une variable de chaîne est définie ou si deux chaînes sont égales l'une à l'autre.

Conditions du fichier bash

Conditions du fichier bash sont utilisés afin de vérifier si un fichier existe ou non, s'il peut être lu, modifié ou exécuté.

Les tests du fichier Bash sont décrits dans le tableau ci-dessous :

Opérateur Description
-e Vérifie si le fichier existe ou non
-d Vérifie si le fichier est un répertoire
-b Vérifie si le fichier est un périphérique bloc
-c Vérifie si le fichier est un périphérique caractère
f1 -nt f2 Si le fichier f1 est plus récent que le fichier f2
f1 -et f2 Si le fichier f1 est plus ancien que le fichier f2
-r Le fichier peut être lu (autorisation de lecture)
-w Le fichier peut être modifié (autorisation d'écriture)
-x Le fichier peut être exécuté (autorisation d'exécution)

Par exemple, pour vérifier si un fichier est un répertoire, vous écririez le script suivant

#!/bin/bash

# Checking the first argument provided
if [[ -d $1 ]]
then  
  echo "This is a directory"
else
  echo "Not a directory"
fi

Conditions de nombre de bash

Les conditions de nombre bash sont utilisées afin de comparer deux nombres :s'ils sont égaux, si l'un est supérieur à un autre ou inférieur à un autre.

Voici un tableau des conditions de nombre de Bash les plus utilisées :

Opérateur Description
num1 -eq num2 Vérifier si les nombres sont égaux
num1 -ne num2 Vérifier si les nombres ne sont pas égaux
num1 -lt num2 Vérifier si num1 est inférieur à num2
num1 -le num2 Inférieur ou égal à num2
num1 -gt num2 Supérieur à num2
num1 -ge num2 Supérieur ou égal à num2

Par exemple, pour vérifier si un nombre n'est pas égal à zéro, on écrirait :

#!/bin/bash

# Checking the first argument provided
if [[ $1 -eq 0 ]]
then  
  echo "You provided zero as the first argument."
else
  echo "You should provide zero."
fi

Conditions de chaîne bash

Les conditions de chaîne bash sont utilisées pour vérifier si deux chaînes sont égales ou si une chaîne est vide.

Voici un tableau des principales conditions de chaîne Bash :

Opérateur Description
str1 = str2 Vérifie si les chaînes sont égales ou non
str1 != str2 Vérifie si les chaînes sont différentes
-z str1 Vérifie si str1 est vide
-n str1 Vérifie si str1 n'est pas vide

Par exemple, pour vérifier si un utilisateur a fourni une valeur à votre script, vous écririez :

#!/bin/bash

# Checking the first argument provided
if [[ -n $1 ]]
then  
  echo "You provided a value"
else
  echo "You should provide something"
fi

Conclusion

Dans le didacticiel d'aujourd'hui, vous avez découvert l'instruction Bash "If Else".

Vous avez vu, avec des exemples, que vous pouvez construire des instructions plus complexes :en utilisant elif et des instructions imbriquées.

Enfin, vous avez découvert les tests Bash, ce qu'ils sont et comment ils sont utilisés pour vérifier les conditions dans les scripts.

Si vous êtes intéressé par l'administration système Linux, nous avons une section complète qui lui est consacrée sur le site Web, alors assurez-vous de la consulter !


Linux
  1. Tableaux bash avec exemples

  2. Instruction Bash If-Else avec des exemples

  3. 4 Exemples d'instructions Awk If ( if, if else, if else if, :? )

  4. 5 exemples d'instructions Bash Case

  5. Instruction Bash/sh 'if else'

Bash For Loop avec des exemples pratiques

La commande Bash Echo expliquée avec des exemples sous Linux

La redirection bash expliquée avec des exemples

Bash Scripting - Fonctions expliquées avec des exemples

Bash Scripting - Variables expliquées avec des exemples

Bash Scripting - Commande Printf expliquée avec des exemples