La programmation en bash peut être amusante parfois. Sachez séparer vos ifs de vos else-ifs ou elif, comme on les appelle en bash, ça peut aussi être amusant. Découvrez comment obtenir vos conditions bash correctement.
Conditions Bash: si, alors, autre, elif
Aussi bon que tous les langages de codage, il y a des conditionnels – des énoncés conditionnels qui permettent de tester un éventail de situations. Dans la plupart des langages de programmation, un basique if
La déclaration permettrait de tester l'état ou la valeur d'une variable de programmation donnée. Par exemple, vous pouvez tester si une variable est vide ou non.
Pour plus d'informations sur les variables bash, Vous voudrez peut-être consulter notre article Fonctions Bash et variables locales.
Bash est un shell Linux à part entière et un langage de programmation complet. Il comprend également de nombreuses extensions aux instructions conditionnelles les plus courantes dans son langage de programmation. / script. Par exemple, on peut tester la présence de fichiers, pour voir si un grep -q
la déclaration a réussi et ainsi de suite.
En même temps, on peut spécifier des instructions conditionnelles complexes, et même des sous-couches dans le if
etc. instruction conditionnelle proprement dite. Cela rend Bash très approprié pour la manipulation / manipulation de données volumineuses, analyse de texte et de nombreuses autres tâches de type DevOps.
Cet article se concentrera principalement sur l'obtention des conditions correctes, à l'aide de if...then
, else
, et elif
déclarations. Un prochain article discutera des conditions de test plus complexes, utilisation de sous-couches dans des instructions conditionnelles, etc.
Test conditionnel Bash: et … ensuite … être
Écrire une instruction conditionnelle dans Bash est simple et direct. Vous pouvez même les écrire directement sur la ligne de commande Bash, sans utiliser de script:
si [ "1" == "1" ]; puis echo 'vrai'; être
Le résultat est certain, Quoi 1
allumettes 1
. Notez que la façon de tester l'égalité entre les éléments est d'utiliser ==
et non =
. C'est le cas dans de nombreuses langues et, souvent, est fait pour éviter ou se séparer clairement de la « mission » (En d'autres termes, déterminer une variable à une valeur donnée).
Notez également que nous terminons chaque condition if
déclaration avec une fin fi
(l'inverse de et) déclaration. Cela nous permet de spécifier plusieurs lignes après puis. then
clause avant de mettre fin à la section ultérieure.
Test conditionnel Bash: le reste Et variables
Mettons cela dans un petit script, ajoutons un else
section et ajouter quelques vérifications variables.
Nous définissons test.sh
comme suit:
#!/bin/bash VAR1=1 VAR2=1 if [ "${VAR1}" == "${VAR2}" ]; then echo 'true' else echo 'false' fi
Ensuite, nous rendons ce petit script exécutable en lançant chmod +x test.sh
qui définit le drapeau exécutable pour le test.sh
texte.
À l'intérieur du script que nous avons défini VAR1
et VAR2
à la valeur de 1. Ensuite, nous émettons une instruction if qui compare les deux variables, et nous résonnons true
si la comparaison est valide, et false
si la comparaison a échoué. Le résultat est correct true
production.
Test conditionnel Bash: et Imbrication et vérifications avancées
Nous pouvons développer un peu plus le dernier exemple et vérifier l'inégalité en utilisant !=
au lieu de ==
, ajoutez des boucles imbriquées et utilisez en même temps certaines vérifications de variables avancées natives de Bash.
Nous définissons test2.sh
comme suit:
#!/bin/bash VAR1="${1}" VAR2="${2}" si [ ! -Avec "${VAR1}" -une ! -Avec "${VAR2}" ]; then if [ "${VAR1}" != "${VAR2}" ]; then echo 'true' else echo 'false' fi else echo "Affirmer: Soit VAR1 (valeur: '${VAR1}'), ou VAR2 (valeur: '${VAR2}'), ou les deux, sont vides!" être
Dans ce scénario, on remplace nos valeurs encodées de 1
pour les deux VAR1
et VAR2
avec deux variables spéciales à savoir ${1}
et ${2}
, qui représentent le premier et le deuxième choix / paramètre, passé de la ligne de commande au script. Nous rendons notre script exécutable à nouveau et l'exécutons avec diverses combinaisons de mauvaises alternatives.
Les -z
le code signifie vérifier si un paramètre est vide ou non. Nous nions le résultat (En d'autres termes, oui se transforme en non et il ne se transforme pas en oui, ou plutôt / mieux, vrai devient faux et faux devient vrai) par l'utilisation d'un point d'exclamation (!
) en face de -z
Chèque. Plus tard, nous utilisons également un Oui clause (En d'autres termes, les deux côtés de la Oui la clause doit être prouvée).
Autrement dit, la façon dont vous pourriez lire le if [ ! -z "${VAR1}" -a ! -z "${VAR2}" ];
la ligne en langage naturel est VAR1 et VAR2 ne doivent pas être vides. Nous pouvons voir que nos variables sont vérifiées correctement par cette instruction conditionnelle, car à chaque fois on essaie de ne passer qu'une variable, ou deux variables dont une est vide, le programme saute au else
clause informant de l'utilisation incorrecte de notre option de script.
En conclusion, à l'intérieur du premier if
instruction conditionnelle, nous avons un lycée (jargon informatique: imbriqué) phrase conditionnelle. Cette déclaration vérifie notre inégalité en utilisant ce n'est pas pareil (!=
). En effet, quand on passe deux valeurs différentes, a savoir 1
et 2
pour le scénario, le résultat est vrai: ces nombres sont inégaux.
Test conditionnel Bash: elif
Lorsque vous commencez à développer des instructions plus complexes et profondément imbriquées dans Bash, vous découvrirez bientôt qu'il y a un cas où vous vous branchez de plus en plus profondément dans le code imbriqué, et le code commence à paraître plus complexe en raison de plusieurs couches de profondeur. Souvent, même si pas toujours, vous pouvez utiliser un elif
déclaration dans de tels cas. Par exemple:
#!/bin/bash if [ "${1}" -ll 2 ]; then echo "moins que 2" else if [ "${1}" -ll 4 ]; then echo "moins que 4" else if [ "${1}" -ll 6 ]; then echo "moins que 6" fi fi fi if [ "${1}" -ll 2 ]; then echo "moins que 2" elif [ "${1}" -ll 4 ]; then echo "moins que 4" elif [ "${1}" -ll 6 ]; then echo "moins que 6" être
Après avoir défini ce script comme test3.sh, rendez-le exécutable et lancez-le.
Les deux blocs de code font exactement la même chose: ils vérifient si la valeur passée comme première option au script (1, 3 et 5 respectivement) est inférieur à (-lt
) Les valeurs 2, 4 et 6 en séquence. On voit que les deux blocs fonctionnent exactement de la même manière.
Malgré cela, le deuxième bloc de code, qui emploie l'utilisation de elif
déclarations (qui peut aussi être lu comme mais déclarations) au lieu de plus … et blocs d'instructions conditionnelles. Le deuxième bloc de code n'est pas seulement plus court, c'est aussi plus propre, plus clair et plus agréable à l'oeil. Notez que vous pouvez également combiner else
et elif
déclarations combinées, manière imbriquée, etc.
conclusion
L'écriture du code bash est, était et sera probablement pendant un certain temps un exercice agréable pour beaucoup. La création d'instructions conditionnelles bien conçues en fait partie intégrante et courante.. Dans ce petit tutoriel, nous analysons if
, then
, else
, elif
et fi
déclarations. Utilisation des différentes instructions conditionnelles, vous serez en mesure de créer un code excellent et propre. Prendre plaisir!