Déclaration Bash 'if else' : tutoriel et exemples

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 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.

Si aucune des conditions ne renvoie l'état 0, 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.

Notez que le 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

Pour exécuter un bloc de code si une variable a une valeur particulière :

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

Pour vérifier plusieurs valeurs :

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

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.

if npm -v then echo "NPM present in system" else sudo apt install npm fi

Dans l'exemple ci-dessus, puisque 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.

On peut aussi nicher un autre 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

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 :

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

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 elif bloquer aussi.

Exécution sinon: Scripts et ligne de commande

Semblable à tout code Bash, le sinon 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.

L'utilisateur peut également enregistrer ce code dans un fichier de script et exécuter le fichier de script.

le #!/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.

Pour accorder des autorisations d'exécution pour ce fichier, exécutez :

chmod +x test.sh

Enfin, pour exécuter le fichier, exécutez :

./test.sh

Conclusion

Semblable à n'importe quel langage de programmation, 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.