Introduction to Bash Scripting 06 - A Simple "If" Statement
Table des matières:
ifif..elseStatementif..elif..else- Imbriqué
ifinstructions - Conditions multiples
- Opérateurs de test
- Conclusion
La prise de décision est l'un des concepts les plus fondamentaux de la programmation informatique. Comme dans tout autre langage de programmation, les
if..else
if
,
if..else
,
if..elif..else
et nested
if
dans Bash peuvent être utilisées pour exécuter du code basé sur une certaine condition.
Dans ce didacticiel, nous vous expliquerons les bases des instructions Bash
if
et vous montrerons comment les utiliser dans vos scripts shell.
if
Bash
if
conditions peuvent avoir différentes formes. L'instruction
if
plus élémentaire prend la forme suivante:
if TEST-COMMAND then STATEMENTS fi
L'instruction
if
commence par le mot clé
if
suivi de l'expression conditionnelle et du mot clé
then
. L'instruction se termine par le mot clé
fi
.
Si la
TEST-COMMAND
évaluée à
True
, les
STATEMENTS
sont exécutés. Si
TEST-COMMAND
renvoie
False
, rien ne se passe, les
STATEMENTS
sont ignorés.
En général, il est recommandé de toujours mettre en retrait votre code et de séparer les blocs de code avec des lignes vides. La plupart des gens choisissent d'utiliser une indentation de 4 espaces ou de 2 espaces. Les retraits et les lignes vides rendent votre code plus lisible et organisé.
Examinons l'exemple de script suivant qui vérifie si un nombre donné est supérieur à 10.
#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." fi
Enregistrez le code dans un fichier et exécutez-le à partir de la ligne de commande:
bash test.sh
Le script vous demandera d'entrer un nombre. Si, par exemple, vous entrez 15, la commande de
test
sera évaluée à
true
car 15 est supérieur à 10 et la commande
echo
à l'intérieur de la clause
then
sera exécutée.
The variable is greater than 10.
if..else
Statement
L'
if..else
Bash
if..else
prend la forme suivante:
if TEST-COMMAND then STATEMENTS1 else STATEMENTS2 fi
Si la
TEST-COMMAND
évaluée à
True
, les
STATEMENTS1
seront exécutés. Sinon, si
TEST-COMMAND
renvoie
False
, les
STATEMENTS2
seront exécutés. Vous ne pouvez avoir qu'une seule clause
else
dans l'instruction.
Ajoutons une clause
else
à l'exemple de script précédent:
#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." else echo "The variable is equal or less than 10." fi
if..elif..else
L'
if..elif..else
Bash
if..elif..else
prend la forme suivante:
if TEST-COMMAND1 then STATEMENTS1 elif TEST-COMMAND2 then STATEMENTS2 else STATEMENTS3 fi
Si
TEST-COMMAND1
évalué à
True
, les
STATEMENTS1
seront exécutés. Si
TEST-COMMAND2
évalué à
True
, les
STATEMENTS2
seront exécutés. Si aucune des commandes de test n'est évaluée à
True
, les
STATEMENTS2
sont exécutés.
Vous pouvez avoir une ou plusieurs clauses
elif
dans l'instruction. La clause
else
est facultative.
Les conditions sont évaluées séquentiellement. Une fois qu'une condition retourne
True
les conditions restantes ne sont pas remplies et le contrôle de programme se déplace à la fin des instructions
if
.
Ajoutons une clause
elif
au script précédent:
#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." elif] then echo "The variable is equal to 10." else echo "The variable is less than 10." fi
Imbriqué
if
instructions
Bash vous permet d'imbriquer des instructions
if
dans des instructions
if
. Vous pouvez placer plusieurs instructions
if
dans une autre instruction
if
.
Le script suivant vous invitera à saisir trois nombres et imprimera le plus grand nombre parmi les trois nombres.
#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] then if] then echo "$VAR1 is the largest number." else echo "$VAR3 is the largest number." fi else if] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi fi
Voici à quoi ressemblera la sortie:
Enter the first number: 4 Enter the second number: 7 Enter the third number: 2 7 is the largest number.
Au lieu d'utiliser des instructions
if
imbriquées, il est généralement plus efficace d'utiliser l'instruction case.
Conditions multiples
Les opérateurs logiques
OR
et
AND
vous permettent d'utiliser plusieurs conditions dans les instructions
if
.
Voici une autre version du script pour imprimer le plus grand nombre parmi les trois nombres. Dans cette version, au lieu des instructions
if
imbriquées, nous utiliserons l'opérateur logique
AND
(
&&
).
#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] &&] then echo "$VAR1 is the largest number." elif] &&] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi
Opérateurs de test
Dans Bash, la commande de
test
prend l'une des formes de syntaxe suivantes:
test EXPRESSION]
Pour annuler l'expression de test, utilisez l'opérateur logique
NOT
(
!
). Lorsque vous comparez des chaînes, utilisez toujours des guillemets simples ou doubles pour éviter tout problème de division ou de globalisation des mots.
Voici quelques-uns des opérateurs les plus couramment utilisés:
-
-nVAR- Vrai si la longueur de VAR est supérieure à zéro.-zVAR- Vrai si le VAR est vide.STRING1 = STRING2- Vrai [STRING1 et STRING2 sont égaux.STRING1 != STRING2- Vrai STRING1 et STRING2 ne sont pas égaux.INTEGER1 -eq INTEGER2- True INTEGER1 et INTEGER2 sont égaux.INTEGER1 -gt INTEGER2- True INTEGER1 est supérieur à INTEGER2.INTEGER1 -lt INTEGER2- True INTEGER1 est inférieur à INTEGER2.INTEGER1 -ge INTEGER2- True INTEGER1 est égal ou supérieur à INTEGER2.INTEGER1 -le INTEGER2- True INTEGER1 est égal ou inférieur à INTEGER2.-hFILE- True si le FILE existe et est un lien symbolique.-rFILE- True si le FILE existe et est lisible.-wFILE- True si le FILE existe et est accessible en écriture.-xFILE- True si le FILE existe et est exécutable.-dFILE- True si le FILE existe et est un répertoire.-eFILE- Vrai si le FILE existe et est un fichier, quel que soit son type (nœud, répertoire, socket, etc.).-fFILE- True si le FILE existe et est un fichier normal (pas un répertoire ou un périphérique).
Conclusion
Les
if..else
if
,
if..else
et
if..elif..else
vous permettent de contrôler le flux d'exécution du script Bash en évaluant les conditions données.
Digital Storm Marauder critique: Good gaming, little else
Pour un ordinateur de bureau budget, ce système offre peu au-delà de ses fréquences d'images.
Comment exécuter Bash sous Ubuntu sous Windows 10
L`activation de Windows Subsystem pour Linux vous permettra d`exécuter Bash sur Ubuntu sous Windows 10, scripts Bash , Outils de ligne de commande Linux, premiers outils Linux
Tableaux Bash
Les tableaux sont l'une des structures de données les plus utilisées et les plus fondamentales. Dans cet article, nous allons couvrir les tableaux Bash et expliquer comment les utiliser dans vos scripts Bash.







