Comment utiliser la déclaration if...else in Bash
-
L’instruction
ifen Bash -
if ... elseDéclaration en Bash -
if...elif...elseDéclaration dans Bash -
Emboîté
ifDéclaration dans 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.".
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn