Utilisation de l'instruction if…else dans Bash pour l'exécution de code conditionnel.
Bash (Bourne Again Shell) est une invite de commande shell et un langage de script dans les systèmes d'exploitation GNU/Linux. C'est le shell par défaut pour la plupart des distributions Linux.
Les instructions conditionnelles sont vitales dans tout langage de programmation, qu'elles soient compilées ou scriptées. Ils permettent à l'utilisateur d'exécuter un morceau de code basé sur une condition prédéfinie, qui est l'un des fondements de la logique de programmation. Dans cet article, nous allons apprendre à utiliser le sinon
instruction conditionnelle dans Bash.
introduction
le sinon
L'instruction dans Bash permet à l'utilisateur de manipuler le flux de code en fonction de conditions. L'utilisateur peut spécifier des blocs de code séparés à exécuter, dont un seul sera finalement exécuté pendant l'exécution, en fonction de la condition correspondante qui est satisfaite.
Notez que plus de deux conditions peuvent être spécifiées, pour lesquelles elif
déclaration peut être utilisé. L'utilisateur peut donner n'importe quel nombre de conditions en utilisant elif
, et enfin une condition par défaut utilisant autre
bloquer. Voyons plus à ce sujet dans la syntaxe et les exemples ci-dessous.
Syntaxe générale
La syntaxe générale pour sinon
déclaration dans Bash est :
si donc autre Fi
Ici, si le satisfait, c'est-à-dire que s'il renvoie 0 (succès), alors le bloc de code 1 est exécuté. Si la condition ne renvoie pas 0, c'est-à-dire qu'elle renvoie un état d'échec, alors le bloc de code 2 est exécuté. le
sinon
le bloc se termine par un Fi
déclaration.
Pour plusieurs blocs correspondant à plusieurs conditions,elif
est utilisé:
si donc elif alors elif alors ... ... autre Fi
Ici, les conditions sont vérifiées dans l'ordre et le bloc de code de la première condition qui renvoie l'état 0 (succès) est exécuté. Par exemple. si Si aucune des conditions ne renvoie l'état 0, Notez que le Pour exécuter un bloc de code si une variable a une valeur particulière : Pour vérifier plusieurs valeurs : Les conditions peuvent être n'importe quelle commande Linux. Le bloc de code correspondant s'exécutera si la commande s'exécute avec succès. Dans l'exemple ci-dessus, puisque On peut aussi nicher un autre Ceci est utile lorsqu'un ensemble distinct de conditions doit être vérifié une fois qu'une condition initiale est satisfaite. Par exemple, le code suivant essaie d'installer un logiciel de serveur Web : Le code vérifie d'abord si Nginx est déjà installé dans le système. Si c'est le cas, il affiche simplement un message et se ferme. Si ce n'est pas le cas, il essaie d'installer Nginx. Si, pour une raison quelconque, Nginx n'a pas pu être installé dans le système à partir du package, il essaie d'installer Apache2. Si même Apache2 génère une erreur lors de l'installation, il quitte en affichant un message indiquant qu'aucun logiciel n'a pu être installé. De la même manière, un bloc imbriqué peut être utilisé à l'intérieur d'un Semblable à tout code Bash, le L'utilisateur peut également enregistrer ce code dans un fichier de script et exécuter le fichier de script. le Pour accorder des autorisations d'exécution pour ce fichier, exécutez : Enfin, pour exécuter le fichier, exécutez : Semblable à n'importe quel langage de programmation, renvoie un statut non nul (échec), puis
est vérifié. Si
renvoie l'état 0,
est exécuté. Après cela, les autres conditions ne sont pas vérifiées et l'exécution du code continue au code après la
Fi
déclaration. dans le bloc else est exécuté. Notez que le bloc else est facultatif. Si aucune condition n'est satisfaite, ainsi qu'aucune
autre
bloc est spécifié, aucun bloc de code conditionnel ne s'exécutera et l'exécution du code se poursuivra jusqu'au code après la Fi
déclaration, comme indiqué dans le diagramme ci-dessous.ensuite
l'instruction ne doit être utilisée qu'après si
et elif
déclarations et non requis après la autre
déclaration.Exemples
x=0 if [ $x -eq 0 ] then echo "La valeur de X est 0" sinon echo "La valeur de X n'est pas 0" fi
x=2 if [ $x -eq 0 ] then echo "La valeur de X est 0" elif [ $x -eq 1 ] then echo "La valeur de X est 1" elif [ $x -eq 2 ] then echo "Valeur de X est 2" else echo "La valeur de X n'est pas 0" fi
if npm -v then echo "NPM present in system" else sudo apt install npm fi
npm
n'a pas été installé dans le système, la commande npm -v
a renvoyé un statut non nul. Par conséquent, l'exécution du code est entrée dans le autre
block, où nous installons npm en utilisant apte
directeur chargé d'emballage. Comme nous pouvons le voir, cela m'a incité à entrer le mot de passe et a commencé l'installation de npm.sinon
bloc à l'intérieur d'un si
, autre
ou elif
bloquer:x=0 y=1 if [ $x -eq 0 ] then echo "X is 0" if [ $y -eq 1 ] then echo "Y is 1" else echo "Y is not 1" fi else echo "X is pas 0" fi
if nginx -v then echo "NGINX est déjà installé." else if sudo apt install nginx puis echo "Installation NGINX réussie." elif sudo apt install apache2 puis echo "Installation d'APACHE2 réussie." else echo "Impossible d'installer un logiciel Web." Fi
elif
bloquer aussi.Exécution
sinon
: Scripts et ligne de commandesinon
L'instruction peut être utilisée directement dans le shell Bash ou à partir d'un fichier de script shell exécutable. Une fois que l'interpréteur Bash trouve un si
, autre
ou elif
instruction, il continue le shell pour permettre à l'utilisateur d'entrer le bloc de code.#!/bin/bash
au début spécifie l'interpréteur à utiliser lors de l'exécution du fichier. Bien que Bash soit le shell le plus couramment utilisé de nos jours, certains utilisateurs préfèrent des shells comme zsh, qui doivent être spécifiés à la place de bash au début de ce fichier.chmod +x test.sh
./test.sh
Conclusion
sinon
déclaration est une caractéristique fondamentale de Bash. Apprendre son utilisation va un long chemin dans l'écriture de scripts de base et avancés.