Types de déclarations conditionnelles
Les types suivants d'énoncés conditionnels peuvent être utilisés dans Bash.
Chaque type de déclarations est expliqué dans ce tutoriel avec un exemple.
Opérateurs conditionnels
De nombreux opérateurs conditionnels peuvent être utilisés dans la déclaration «IF» pour effectuer une tâche conditionnelle. Certains opérateurs conditionnels principalement utilisés sont mentionnés ci-dessous.
Opérateur | Description |
-égaliseur | Renvoie True si deux nombres sont équivalents |
-LT | Renvoie True si un nombre est inférieur à un autre numéro |
-GT | Renvoie vrai si un nombre est supérieur à un autre nombre |
== | Renvoie vrai si deux chaînes sont équivalentes |
!= | Renvoie vrai si deux chaînes ne sont pas équivalentes |
! | Renvoie vrai si l'expression est fausse |
-d | Vérifiez l'existence d'un répertoire |
-e | Vérifiez l'existence d'un fichier |
-r | Vérifier l'existence d'un fichier et lire l'autorisation |
-w | Vérifiez l'existence d'un fichier et l'autorisation d'écriture |
-X | Vérifiez l'existence d'un fichier et exécutez l'autorisation |
Utilisation d'une instruction IF simple
Syntaxe:
Si [condition]; alors
Commande (s)
Fi
Cet exemple montre l'instruction IFS conditionnelle unique. Créer un fichier nommé 'cond1.sh 'et ajouter le script suivant. Ce script prendra une valeur numérique en entrée et vérifiera que la valeur est inférieure à 100 ou non en utilisant si la condition. Si la condition est vraie, elle imprimera un message dans le terminal.
cond1.shot
#!/ bac / bash
Echo "Entrez un numéro"
lire n
si [$ n -lt 100]; alors
printf "$ n est inférieur à 100 \ n"
Fi
Sortir:
Exécutez le script.
$ bash cond1.shot
Ici, 87 est pris en entrée, ce qui est inférieur à 100. Ainsi, la sortie est «87 est inférieure à 100». Aucune sortie n'est imprimée pour l'entrée supérieure à 100.
Comment vous pouvez appliquer deux conditions avec une instruction logique et «If» est affichée dans cet exemple. Créer un fichier nommé 'cond2.shot'et ajouter le script suivant. Ici, nom d'utilisateur et mot de passe sera tiré de l'utilisateur. Ensuite, l'instruction «IF» est utilisée pour vérifier que le nom d'utilisateur est ''Et le mot de passe est'superutilisateur'. Si les deux valeurs correspondent, alors l'instruction «IF» reviendra True et imprimera le message «Connexion réussie».
cond2.shot
#!/ bac / bash
Echo "Entrez le nom d'utilisateur"
Lire un
Echo "Entrez le mot de passe"
Lire PW
Si [["$ un" == "admin" && "$ pw" == "SuperUser"]]; alors
Echo "Connexion réussie."
Fi
Sortir:
Exécutez le script.
$ bash cond2.shot
Le script n'imprimera aucune sortie pour une entrée non valide et imprimera le message de réussite pour une entrée valide.
Utilisation de la déclaration IF-ELSE
Syntaxe:
Si [condition]; alors
Commande (s)
autre
Commande (s)
Fi
Pour exécuter une instruction pour la vraie condition et une autre instruction pour la fausse condition, sinon La déclaration est utilisée dans cet exemple. Créer un fichier nommé 'cond3.sh ' et ajouter le script suivant. Ici, $ nom la variable est utilisée pour prendre les commentaires de l'utilisateur et la valeur de $ nom sera comparé à deux valeurs, 'Neha' et 'Néant'. Si $ nom correspond à l'une de ces valeurs, alors si la condition reviendra vrai et la déclaration de 'si' la pièce sera exécutée. Si $ nom ne correspond à aucune des valeurs, alors si la condition reviendra fausse et la déclaration de 'autre' la pièce sera exécutée.
cond3.shot
#!/ bac / bash
Echo "Entrez votre nom"
Nom de lecture
Si [[$ name == "neha" || $ name == 'nil']]; alors
Echo "Vous avez gagné le prix"
autre
Echo "Essayez la prochaine fois"
Fi
Sortir:
Exécutez le script.
$ bash cond3.shot
La sortie est: «Vous avez gagné le prix» pour une entrée valide et «Essayez la prochaine fois» pour l'entrée non valide.
Utilisation de la déclaration IF-Elif-Else
Syntaxe:
Si [condition]; alors
Commande (s)
elif [condition]; alors
Commande (s)
…
autre
Commande (s)
Fi
Plusieurs conditions avec plusieurs instructions IF sont déclarées dans cet exemple pour imprimer la note en fonction de la marque d'entrée. Créer un fichier nommé 'cond4.shot'et ajouter le script suivant. Après avoir pris la valeur de $ Mark, La première instruction «if» testera la valeur est supérieure ou égale à 90. S'il revient vrai, il imprimera «Grade - A +» sinon il ira pour la deuxième condition. Le deuxième «si» testera la valeur inférieure à 90 et supérieure ou égale à 80. S'il revient vrai, il imprimera «Grade - A» sinon il ira pour la troisième condition. Si la troisième condition est vraie, elle imprimera «Grade - B +» Sinon, optez pour la quatrième condition. Si la quatrième condition est vraie, elle imprimera «Grade - C +» et si elle revient fausse, la partie de la partie autre sera exécutée, ce sera imprimé, «Grade - F».
cond4.shot
#!/ bac / bash
Echo "Entrez dans la marque"
lire la marque
if (($ mark> = 90)); alors
Echo "Grade - A +"
Elif ($ Mark < 90 && $mark >= 80)); alors
Echo "Grade - A"
Elif ($ Mark < 80 && $mark >= 70)); alors
Echo "Grade - B +"
Elif ($ Mark < 70 && $mark >= 60)); alors
Echo "Grade - C +"
autre
Echo "Grade - F"
Fi
Sortir:
Exécutez le script.
$ bash cond4.shot
Le script est testé par trois valeurs de marque. Ce sont 95, 79 et 50. Selon les conditions utilisées dans le script, la sortie suivante est imprimée.
Utilisation de imbriqués si
Syntaxe:
Si [condition]; alors
Commandes
Si [condition]; alors
Commandes
Fi
Fi
Cet exemple montre l'utilisation d'une déclaration si imbriquée qui calculera le bonus en fonction du montant des ventes et de la durée. Créer un fichier nommé 'cond5.sh 'et ajouter le code suivant. Les valeurs de $ Montant et $ durée sont pris en entrée. Ensuite, la première instruction «IF» vérifiera que le montant $ est supérieure ou égale à 10000 ou non. S'il revient vrai, il vérifiera l'état de «If'station if». la valeur de $ durée est vérifié par la déclaration interne «if». Si $ durée est inférieur ou égal à 7, le message «vous obtiendrez 20% de bolus» sera stocké, sinon le message «vous obtiendrez 15% de bonus» sera stocké dans le $ sortie variable. Si la première condition «si» renvoie false, les instructions de la partie d'autre seront exécutées. Dans la deuxième condition «If» imbriquée, le message «vous obtiendrez 10% de bonus» imprimera pour le renvoi d'une valeur réelle et le message «vous obtiendrez un bonus de 5%» imprimera pour retourner une fausse valeur.
cond5.shot
#!/ bac / bash
Echo "Entrez le montant des ventes"
montant du montant
écho "entrez la durée"
durée de lecture
if (($ montant> = 10000)); alors
si (($ durée <= 7 )); then
Output = "Vous obtiendrez un bonus de 20%"
autre
output = "vous obtiendrez 15% de bonus"
Fi
autre
si (($ durée <= 10 )); then
output = "vous obtiendrez 10% de bonus"
autre
Output = "Vous obtiendrez un bonus de 5%"
Fi
Fi
Echo "$ output"
Sortir:
Exécutez le script.
$ bash cond5.shot
Le script est testé par 12000 en montant et 5 comme valeur de durée en premier. Selon la condition «si», le message, «vous obtiendrez un bonus de 20%. Ensuite, le script est testé par 9000 comme montant et 12 comme valeurs de durée et le message «vous obtiendrez un bonus de 5%» est imprimé.
Utilisation de la déclaration de cas
Syntaxe:
cas dans une affaire
Modèle 1) Commandes ;;
Commandes de modèle n) ;;
ESAC
La déclaration «cas» peut être utilisée comme alternative à la déclaration «IF». Créer un fichier nommé 'Cond6.sh ' et ajouter le code suivant pour faire des opérations arithmétiques simples. Ce script lira trois valeurs de la ligne de commande et se stockera dans les variables, $ n1, $ n2 et $ op. Ici, N1 $ et $ N2 sont utilisés pour stocker deux valeurs numériques et $ op est utilisé pour stocker n'importe quel opérateur ou symbole arithmétique. Une instruction 'Case' est utilisée pour vérifier quatre symboles pour effectuer une opération arithmétique. Lorsque $ op est '+', il ajoutera $ n1 et $ n2 et stockera le résultat en résultat. De la même manière, les symboles '-' et '/' sont utilisés pour faire l'opération de soustraction et de division. Le symbole 'x' est utilisé ici pour faire l'opération de multiplication. Pour toute autre valeur de $ OP, il imprimera un message, «mauvais nombre d'arguments».
cond6.shot
#!/ bac / bash
N1 = 1 $
OP = 2 $
N2 = 3 $
cas $ op
'+')
((Résultat = $ n1 + $ n2)) ;;
'-')
((Résultat = $ n1- $ n2)) ;;
'X')
((Résultat = $ n1 * $ n2)) ;;
'/')
((Résultat = $ n1 / $ n2)) ;;
*)
écho "mauvais nombre d'arguments"
sortie 0 ;;
ESAC
Echo "$ n1 $ op $ n2 = $ résultat"
Sortir:
Exécutez le script avec trois arguments de ligne de commande. Le script est exécuté quatre fois en utilisant quatre opérateurs, '+', '-', 'x' et '/'.
$ bash cond6.SH 40 + 20
$ bash cond6.SH 40 - 20
$ bash cond6.sh 40 x 20
$ bash cond6.SH 40/20
La sortie suivante apparaîtra après l'exécution du script.
Exemple-7: instruction «cas» avec une gamme de valeurs
L'énoncé de «cas» ne peut pas définir plusieurs conditions avec l'instruction Opérateur logique comme «If». Mais en utilisant le tuyau ('|'), plusieurs conditions peuvent être attribuées dans l'instruction 'Case'. Cet exemple montre la valeur de grade basée sur des marques comme Exemple-4 Mais en utilisant une instruction «cas» au lieu de «si». $ nom et $ marLes valeurs K sont données par des arguments de ligne de commande. La première condition est définie par '9 [0-9] | 100«Pour imprimer« Grade - A + ». Cela signifie que si la valeur de marque $ est à moins de 90 à 99 ou 100, alors la condition sera vraie. La deuxième condition est '8 [0-9]'Pour imprimer "Grade - A" et cela correspondra $ Mark Avec n'importe quelle valeur de la gamme, 80-89. Les troisième et quatrième conditions fonctionnent comme la deuxième condition. La cinquième condition est '0 | 1 [0-9] | 2 [0-9] | 3 [0-9] | 4 [0-9] | 5 [0-9]Grade 'pour l'impression' - f 'et il correspondra $ Mark avec 0 ou un nombre dans les gammes 0-9, 10-19, 20-29, 30-39, 40-49 et 50-59.
cond7.shot
#!/ bac / bash
# Grade d'impression basé sur la marque
nom = 1 $
Mark = 2 $
cas $ mark in
9 [0-9] | 100)
grade = "a +" ;;
8 [0-9])
grade = "a" ;;
7 [0-9])
grade = "b +" ;;
6 [0-9])
grade = "c +" ;;
0 | [0-9] | 1 [0-9] | 2 [0-9] | 3 [0-9] | 4 [0-9] | 5 [0-9])
grade = "f" ;;
*)
écho "marque non valide"
sortie 0 ;;
ESAC
Echo "$ nom obtenu $ grade"
Sortir:
Exécutez le script avec deux arguments de ligne de commande. Le script est exécuté quatre fois avec des valeurs d'argument différentes.
$ bash cond7.Sh Lily 92
$ bash cond7.SH NAHAR 78
$ bash cond7.SH John 500
$ bash cond7.SH John AA
Les utilisations multiples des instructions de condition sont essayées d'expliquer dans ce tutoriel en utilisant des exemples appropriés. Hope, le lecteur pourra utiliser efficacement les déclarations conditionnelles dans le script bash après avoir correctement pratiqué les exemples ci-dessus.
Pour plus d'informations, regardez la vidéo!