Des exemples spécifiques montrés dans cet article comprennent:
Syntaxe générale de bash si elif else
Ci-dessous est la syntaxe générale de SI Elif et AUTRE en bash:
Si condition à test; alors
Code-à-exécuter-1
ELIF CONDITION NEXT-CORS-TO-TEST; alors
Code-à-exécuter-2
ELIF CONDITION NEXT-CORS-TO-TEST; alors
Code-à-exécuter-2
autre
Code-à-exécuter-2
Fi
Remarque: dans la syntaxe générale ci-dessus, vous pouvez inclure zéro, un ou multiple Elif conditions dans le bloc de code et le AUTRE La condition est facultative.
La construction des conditions réelles a de nombreuses options car la syntaxe de Bash a tellement de fonctionnalités et d'options différentes, mais un modèle très basique pour vos scripts bash serait d'utiliser le [[ Syntaxe à double support comme indiqué dans l'exemple de syntaxe générale et des exemples spécifiques ci-dessous.
si [[condition à test]]; alors
Code-à-exécuter-1
elif [[condition prochaine à tester]]; alors
Code-à-exécuter-2
elif [[condition prochaine à tester]]; alors
Code-à-exécuter-2
autre
Code-à-exécuter-2
Fi
Remarque également: En fonction de l'esthétique de la mise en forme de votre code, vous aimerez peut-être la même ligne des conditions ou vous pouvez choisir de le mettre dans la ligne suivante comme indiqué ci-dessous:
Si [[condition à test]]
alors
Code-à-exécuter-1
ELIF [[CONDITION Next-To-Test]]
alors
Code-à-exécuter-2
ELIF [[CONDITION Next-To-Test]]
alors
Code-à-exécuter-2
autre
Code-à-exécuter-2
Fi
Permet maintenant de montrer des exemples spécifiques des variations de base du SI Elif et AUTRE Conditions dans les exemples de travail ci-dessous.
Exemple 1: IF Instruction en bash sur l'égalité des chaînes
#!/ bac / bash
lire -p "Entrez un mot de match:" user_input
si [[$ user_input == "Hello"]]; alors
Echo "Bonjour à vous aussi"
Fi
Dans cet exemple ci-dessus, nous utilisons la base SI Condition avec un seul test d'égalité des chaînes, puis imprimez une certaine sortie au cas où la condition serait vraie en fonction de l'entrée de l'utilisateur. Remarque, vous pouvez placer le ALORS déclaration sur la ligne suivante si vous préférez ce style. Voir l'exemple de sortie ci-dessous:
Linuxhint @: ~ $ BASH T1.shot
Entrez un mot de match: Bonjour
Bonjour à toi aussi
Linuxhint @: ~ $ BASH T1.shot
Entrez un mot de match: bye
Linuxhint @: ~ $
Exemple 2: IF Déclaration en bash sur l'égalité du nombre
#!/ bac / bash
lire -p "Entrez un nombre:" user_input
si [[$ user_input -eq 7]]; alors
Echo "7 est un numéro chanceux"
Fi
Dans cet exemple ci-dessus, encore une fois nous faisons un simple SI condition mais dans ce cas, nous montrons comment faire une comparaison de test sur les valeurs numériques. Vous pouvez voir la sortie ci-dessous avec les conditions correspondantes et non correspondantes:
Linuxhint @: ~ $ BASH T2.shot
Entrez un numéro: 7
7 est un nombre chanceux
Linuxhint @: ~ $ BASH T2.shot
Entrez un numéro: 8
Linuxhint @: ~ $
Exemple 3: IF Déclaration en bash sur moins d'un nombre
En plus de -égaliseur Pour l'égalité, vous pouvez également essayer -lt -le -gt -ge les conditions de test pour moins de, inférieures ou égales, supérieures ou supérieures à celles ou égales respectivement. Vous trouverez ci-dessous un exemple similaire avec moins d'opérateur -LT:
#!/ bac / bash
lire -p "Entrez un nombre:" user_input
si [[$ user_input -lt 100]]; alors
Echo "Votre entrée est inférieure à cent"
Fi
La sortie de ce script pourra tester si l'entrée est inférieure à 100 et exécuter du code spécifique sur cette condition:
Linuxhint @: ~ $ BASH T3.shot
Entrez un numéro: 99
Votre entrée est inférieure à cent
Linuxhint @: ~ $ BASH T3.shot
Entrez un nombre: 101
Linuxhint @: ~ $
Exemple 4: IF Déclaration en bash avec logique et opérateur
Cet exemple montrera comment combiner plusieurs conditions avec une logique ET condition. Vous pouvez également utiliser logique OU conditions dans votre SI Constructions de déclaration. Logique ET Dans Bash Code est écrit avec Double AmperSand &&. Vous trouverez ci-dessous un exemple de logique ET dans un bash SI condition:
#!/ bac / bash
lire -p "Entrez un nombre:" user_input
si [[$ user_input -gt 9 && $ user_input -lt 100]]; alors
Echo "Votre entrée est à deux chiffres"
Fi
Nous allons tester cela avec diverses sorties pour prouver que si la première et la deuxième condition sont vraies, la sortie sera imprimée:
Linuxhint @: ~ $ BASH T4.shot
Entrez un numéro: 22
Votre entrée est deux chiffres
Linuxhint @: ~ $ BASH T4.shot
Entrez un numéro: 8
Linuxhint @: ~ $ BASH T4.shot
Entrez un nombre: 100
Linuxhint @: ~ $ BASH T4.shot
Entrez un numéro: 99
Votre entrée est deux chiffres
Exemple 5: IF Instruction en bash avec logique ou opérateur
Logique OU Dans Bash Scripts est écrit avec des barres verticales doubles ||. Essayons à nouveau l'exemple précédent avec une légère variation pour tester un exemple de logique ou d'opérateur:
#!/ bac / bash
lire -p "Entrez un nombre:" user_input
Si [[$ user_input -lt 10 || $ User_input -ge 100]]; alors
Echo "Votre entrée n'est pas à deux chiffres"
Fi
Dans cet exemple, le logique OU L'opérateur combine deux conditions et un seul d'entre eux ou les deux peuvent être vrais pour que la condition soit globale et le code à exécuter. Nous démontrons également le -ge Opérateur pour une comparaison numérique plus grande ou égale dans l'exemple ci-dessus. Le script fonctionne comme prévu dans la sortie ci-dessous:
linuxhint @: ~ $ bash t5.shot
Entrez un numéro: 3
Votre entrée n'est pas deux chiffres
linuxhint @: ~ $ bash t5.shot
Entrez un numéro: 10
linuxhint @: ~ $ bash t5.shot
Entrez un numéro: 99
linuxhint @: ~ $ bash t5.shot
Entrez un nombre: 100
Votre entrée n'est pas deux chiffres
linuxhint @: ~ $ bash t5.shot
Entrez un nombre: 101
Votre entrée n'est pas deux chiffres
Exemple 6: Condition ELIF en bash
Nous allons maintenant fournir un exemple pour plusieurs conditions dans le bloc de code avec Elif. Vous pouvez avoir zéro, un ou multipe Elif Conditions dans un bloc de code. Pour cet exemple, nous en fournirons deux Elif conditions comme une démonstration, mais vous pouvez utiliser n'importe quel nombre de Elif blocs en pratique.
#!/ bac / bash
lire -p "Entrez un nombre:" user_input
si [[$ user_input -lt 0]]; alors
écho "pas une entrée de nombre positif valide"
elif [[$ user_input -gt 0 && $ user_input -lt 10]]; alors
Echo "Numéro de chiffre valide entré"
elif [[$ user_input -gt 9 && $ user_input -lt 100]]; alors
Echo "Numéro de 2 chiffres valide entré"
Fi
Nous testerons ce code avec une variété de nombres pour démontrer lequel si ou Elif La condition est déclenchée:
linuxhint @: ~ $ bash t6.shot
Entrez un nombre: -1
Pas une entrée de nombre positif valide
linuxhint @: ~ $ bash t6.shot
Entrez un nombre: 1
Numéro de 1 chiffre valide entré
linuxhint @: ~ $ bash t6.shot
Entrez un numéro: 14
Numéro de 2 chiffres valide entré
linuxhint @: ~ $ bash t6.shot
Entrez un nombre: 101
Linuxhint @: ~ $
Exemple 7: If Else Statement dans Bash Scripting
Nous allons maintenant démontrer le AUTRE condition. Le AUTRE La condition est utilisée dans le cas où le SI état ou tous les Elif les conditions n'existent pas alors le AUTRE la condition sera utilisée et le code dans le AUTRE la condition sera exécutée. Ajoutons un exemple de AUTRE condition à l'exemple précédent mais pour être clair Elif n'est pas tenu de tirer parti du AUTRE condition. Le AUTRE La condition peut être utilisée avec un SI état et non Elif condition.
#!/ bac / bash
lire -p "Entrez un nombre:" user_input
si [[$ user_input -lt 0]]; alors
écho "pas une entrée de nombre positif valide"
elif [[$ user_input -gt 0 && $ user_input -lt 10]]; alors
Echo "Numéro de chiffre valide entré"
elif [[$ user_input -gt 9 && $ user_input -lt 100]]; alors
Echo "Numéro de 2 chiffres valide entré"
autre
Echo "Un numéro de 2 chiffres valide n'a pas été entré"
Fi
Testons l'exemple de code avec un simple cas de test qui devrait tomber dans le AUTRE condition:
Linuxhint @: ~ $ BASH T7.shot
Entrez un nombre: 199
Un numéro de 2 chiffres valide n'a pas été entré
Linuxhint @: ~ $
CONCLUSION
Nous avons vu comment utiliser SI, Elif et AUTRE Conditions pour former l'exécution conditionnelle dans de nombreuses combinaisons dans les scripts bash et les programmes de bash. Pour les prochaines étapes, vous pouvez étudier les conditions de test et les variations et variétés disponibles pour tester une condition. Vous pouvez également considérer la déclaration de cas bash comme un alternative pour la logique conditionnelle dans les scripts bash. Enfin, le manuel de référence GNU Bash est une bonne source de vérité lors de la recherche de détails de syntaxe exacts.