Bash si déclarations si, elif, sinon, alors, fi

Bash si déclarations si, elif, sinon, alors, fi

Si vous commencez tout juste à explorer le langage de codage bash, vous vous retrouverez bientôt à vouloir créer des déclarations conditionnelles. Les déclarations conditionnelles, en d'autres termes, définissent «si une condition est vraie ou fausse, alors faites ceci ou cela, et si le contraire est vrai, faites quelque chose autre'. C'est la fonction la plus élémentaire de toute déclaration conditionnelle.

Cet article vous présentera les cinq basiques si Clauses de déclaration. être si, Elif, autre, alors et Fi. Le premier ouvre simplement un si déclaration, le alors introduit le Quelles commandes pour exécuter si la condition de déclaration était vraie Section et la autre introduit le Quelles commandes pour exécuter si la condition de déclaration était fausse section. Finalement, le Fi Ferme la déclaration. Nous avons également le spécial Elif sur lequel nous verrons plus dans une minute. Commençons par un exemple facile.

Dans ce tutoriel, vous apprendrez:

  • Comment implémenter un si déclaration sur la ligne de commande bash
  • Comment tel si Les déclarations peuvent également être utilisées à l'intérieur d'un script bash
  • Exemples vous montrant le si, Elif, autre, alors et Fi Clauses en bash
Bash si déclarations: si, elif, sinon, alors, fi

Exigences et conventions logicielles utilisées

Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version logicielle utilisée
Système Indépendant de la distribution Linux
Logiciel Ligne de commande bash, système basé sur Linux
Autre Toute utilité qui n'est pas incluse dans le shell bash par défaut peut être installée en utilisant Sudo Apt-Get Install Utility-Name (ou Installation de miam pour les systèmes basés sur Redhat)
Conventions # - nécessite que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
$ - exige que les commandes Linux soient exécutées en tant qu'utilisateur régulier non privilégié

Exemple 1: Instruction Simple If sur la ligne de commande

$ si [1 -eq 1]; puis écho "correspondant!"; Fi correspondant! 

Dans cette déclaration, nous comparons un à un. Noter que -égaliseur moyenne égal à. Pour faire l'inverse, on peut utiliser -ne ce qui signifie pas égal à, Comme indiqué dans l'exemple suivant:

$ si [0 -ne 1]; puis écho "correspondant!"; Fi correspondant! 

Dans ce cas, nous avons vérifié la non-égalité et comme 0 n'est pas égal à 1 le si La déclaration est vraie, et les commandes après le alors sera exécuté. Changeons légèrement cela:

$ si [1 -ne 1]; puis écho "correspondant!"; else echo" pas assorti!"; Fi non apparié! 

Ici, nous avons introduit un autre clause; ce que commande à exécuter lorsque la condition dans le si La déclaration s'est avérée fausse (ou pas vrai). Comme nous essayons de demander si 1 n'est pas égal (-ne) pour 1 Cette fois, et comme 1 est égal 1 (ce n'est pas le cas), la condition formulée dans ce si La déclaration est fausse, et nous rencontrons notre autre déclaration avec le texte correspondant imprimé.

Exemple 2: Utilisation et instruction if à l'intérieur d'un script shell bash

Il est bon de noter que vous pouvez facilement copier et coller n'importe quel si déclaration affichée ici ou ailleurs, et utilisez-la dans un script de shell bash. Par exemple:

$ echo '#!/ bin / bash '> myscript.sh $ echo 'si [1 -eq 1]; puis écho "correspondant!"; fi '>> myscript.sh $ chmod + x myscript.sh $ ./ myscript.SH Matted! $ 
Copie

Ici, nous avons simplement créé un petit myscript.shot script shell en utilisant écho et le > redirecteur pour rediriger la sortie de notre écho à un fichier. Lorsque vous utilisez > Un nouveau fichier sera créé et tout fichier du même nom sera écrasé, veuillez donc l'utiliser avec soin. Ensuite, nous ajoutons à nouveau notre instruction IF en utilisant Echo et un double redirecteur >> qui, différent > ne créera pas un nouveau fichier et ajoutera simplement le texte du fichier indiqué.

Ensuite nous chmod + x le script pour le rendre exécutable et exécuter le script à l'aide du ./ / Préfixe qui est requis dans Bash (tout spécificateur de chemin correct fera l'affaire).

La première ligne du script est simplement de s'assurer que nous utiliserons l'interprète bash pour notre script. Il est bon à toujours définir cela pour Bash et d'autres scripts (pour d'autres scripts, vous voudrez définir ceci sur tout interprète qui va exécuter votre script, par exemple #!/ usr / bin / python3 pour un python 3 (.py3 par exemple) les scripts, etc.).

Lorsque nous exécutons le script, nous pouvons voir que la sortie est générée comme prévu (1 allumettes 1): Assorti!.

Exemple 3: Qu'est-ce que Elif?

Le Elif La clause nous fournit une flexibilité de raccourci supplémentaire court-circuiter les déclarations imbriquées. Considérer ce qui suit test.shot:

#!/ bin / bash si [0 -eq 1]; alors echo '0 = 1' else if [0 -eq 2]; puis écho '0 = 2' else echo '0!= 2 'fi fi 
Copie

Et sa sortie:

$ ./test.sh 0!= 2 


Ici, nous avons traversé le premier si déclaration, et depuis 0 ne correspond pas 1, le autre La clause est activée. Cela se produit une deuxième fois 0 s'avère également inégal à 2 Et donc le -égaliseur (égal à) La condition échoue, et la seconde autre La clause est activée, donnant comme sortie 0!= 2. Comparons cela avec un Elif déclaration basée dans ce qui suit test2.shot.

#!/ bin / bash si [0 -eq 1]; alors echo '0 = 1' elif [0 -eq 2]; puis écho '0 = 2' else echo '0!= 2 'fi 
Copie

Et sa sortie:

$ ./ test2.sh 0!= 2 

Le script a fait exactement la même chose, mais d'une manière beaucoup plus flexible et plus courte, ne nécessitant qu'un seul niveau de si Profondeur de la déclaration et avec code global plus propre. Notez également qu'il est possible d'en avoir un si déclaration suivie par beaucoup Elseif Les déclarations, permettant à un développeur de tester une variété de conditions est une structure de niveau net et à un niveau.

Conclusion

Dans cet article, nous avons exploré des exemples illustrant le si, Elif, autre, alors et Fi Clauses en bash. Nous avons également examiné comment mettre en œuvre si déclarations à la ligne de commande bash. Nous avons également cherché à déplacer de telles déclarations dans des scripts bash. Apprécier si déclarations en bash et laissez-nous quelques réflexions avec votre meilleur si trucs et astuces!

Et, pour un regard un peu plus avancé sur ce si Peut faire pour vous lorsqu'il est combiné avec des sous-coquilles, consultez notre commentaire de bash!

Tutoriels Linux connexes:

  • Masterring Bash Script Loops
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Choses à installer sur Ubuntu 20.04
  • Boucles imbriquées dans les scripts bash
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Scénarios de bash: conditionnels
  • Comment utiliser des sous-coquilles bash à l'intérieur des instructions IF
  • Boucles de bash avec des exemples
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?
  • Ubuntu 20.04 Guide