Comment utiliser la déclaration if...else in Bash

Suraj Joshi 30 janvier 2023
  1. L’instruction if en Bash
  2. if ... else Déclaration en Bash
  3. if...elif...else Déclaration dans Bash
  4. Emboîté if Déclaration dans Bash
Comment utiliser la déclaration if...else in Bash

Les déclarations conditionnelles sont courantes pour la prise de décision dans presque tous les langages de programmation. Elles permettent l’exécution d’une ou plusieurs déclarations uniquement si une condition particulière est satisfaite. L’expression if ... else est utilisée comme déclaration conditionnelle dans la plupart des langages de programmation. Dans Bash, nous avons également des instructions if, if...elif...else, if ... else et des instructions if imbriquées comme instructions conditionnelles.

L’instruction if en Bash

Syntaxe de la déclaration if

if Test-Expression
then
  Statements
fi

Dans l’exemple ci-dessus, si Test-Expression est True, les Statements sont exécutées. Le mot-clé fi est utilisé pour terminer l’instruction if.

Si Test-Expression test n’est pas True, aucun des Statements n’est exécuté.

Pour rendre notre code plus lisible et organisé, nous pouvons utiliser une indentation de type 4 espaces ou 2 espaces.

Exemple: if déclaration en Bash

echo -n "Enter numnber : "
read n
 
rem=$(( $n % 2 ))
 
if [ $rem -eq 0 ]
then
  echo "$n is even number"
fi

Production:

Enter numnber : 4
4 is even number

Il accepte un numéro de l’utilisateur et ne donne la sortie que si le numéro est un nombre pair.

Si le nombre est pair, le reste est égal à zéro lorsque le nombre est divisé par deux. Par conséquent, l’expression de test est True, de sorte que l’instruction echo est exécutée.

if ... else Déclaration en Bash

Syntaxe de la déclaration if ... else

if Test-Expression
then
  Statements-1

else
  Statements-2
fi

Dans cet exemple, si Test-Expression est True, les Statements-1 sont exécutées; sinon, les Statements-2 sont exécutées. Pour terminer l’instruction if ... else, le mot-clé fi est utilisé.

Exemple: if...else dans Bash

echo -n "Enter numnber : "
read n
 
rem=$(( $n % 2 ))
 
if [ $rem -eq 0 ]
then
  echo "$n is even number"
else
  echo "$n is odd number"
fi

Production:

Enter numnber : 5
4 is odd number

Il accepte un nombre de l’utilisateur et donne une sortie selon que le nombre d’entrée est exactement divisible par 2 ou non.

Si le nombre est pair, le reste est égal à zéro lorsque le nombre est divisé par deux; par conséquent, l’expression test est True et l’instruction echo "$n is even number" est exécutée.

Si le nombre est impair, le reste n’est pas zéro; par conséquent, l’expression test est False et l’instruction echo "$n is odd number" est exécutée.

if...elif...else Déclaration dans Bash

Syntaxe de la déclaration if...elif...else

if Test-Expression-1
then
  Statements-1
elif Test-Expression-2
then
  Statements-2

else
  Statements-3
fi

Si Test-Expression-1 est True, les Statements-1 sont exécutées. Sinon, si Test-Expression-2 est True, Statements-2 est exécutée.

Si aucune des expressions de test n’est True, l’expression de test 3 est exécutée.

Nous pouvons avoir autant d’instructions elif que nous le souhaitons, et l’instruction else est optionnelle.

Exemple: if...elif...else dans Bash

echo -n "Enter the value of a: "
read a

echo -n "Enter the value of b: "
read b

if [ $a -lt $b ]
then
   echo "a is less than b"
   
elif [ $a -gt $b ]
then
   echo "a is greater than b"

else
   echo "a is equal to b"
fi

Production:

Enter the value of a: 4
Enter the value of b: 4
a is equal to b

Il accepte deux nombres comme entrée de l’utilisateur et imprime le résultat en fonction de l’expression de test qui est vraie.

Si a<b, le programme imprime a is less than b.

Si a>b, le programme affiche a is greater than b.

Si aucune des expressions conditionnelles n’est vraie, le programme affiche a is equal to b.

Emboîté if Déclaration dans Bash

Lorsqu’une instruction if est placée dans une autre instruction if, elle est appelée instruction if imbriquée.

echo -n "Enter numnber : "
read a
 
rem=$(( $a % 2 ))
 
if [ $rem -eq 0 ]
then
  if [ $a -gt 10 ]
  then
    echo "$a is even number and greater than 10."
	
  else
    echo "$a is even number and less than 10."
  fi
else
  echo "$a is odd number"
fi

Production:

Enter numnber : 46
46 is even number and greater than 10.

Elle démontre l’utilisation de l’instruction if imbriquée. Si le nombre est exactement divisible par 2 et supérieur à 10, l’instruction echo "$a is even number and greater than 10.".

Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn