Dans les scripts bash, les instructions conditionnelles aident à vérifier si une condition spécifique est vraie ou fausse. Lorsque la condition est vraie, le script shell exécute ou exécute un bloc de code stipulé par le script. Sinon, le script ignore l'exécution du code et passe à l'instruction conditionnelle suivante.
Dans les scripts bash, les instructions conditionnelles incluent if , si-sinon , if-elif-else et if imbriqué déclarations. Dans ce guide, nous allons explorer comment ces instructions conditionnelles sont utilisées dans l'exécution de scripts.
L'instruction if
Dans sa forme la plus simple, l'instruction "if" prend la syntaxe suivante.
if [[ conditional_statement ]] then command fi
L'instruction conditionnelle if commence par if mot-clé. Ceci est suivi par la suite d'une instruction conditionnelle qui est ensuite suivie de then mot clé qui précède la commande à exécuter si l'instruction conditionnelle est vraie.
Ainsi, si la condition_statement est vrai, alors la commande est exécuté. S'il est évalué à False, rien ne se passe et la commande est entièrement ignoré et le script se termine.
Prenons un exemple de script bash qui vérifie si un score fourni est supérieur à 80.
$ vim check_score.sh
Copiez et collez le script.
#!/bin/bash echo -n "Please Enter a score: " read score if [[ $score -gt 80 ]] then echo "You have passed the exam!" fi
Prenez bien note de l'indentation. Attribuez des autorisations d'exécution à l'aide de chmod commande comme suit :
$ chmod +x check_score.sh
Exécutez ensuite le script.
$ ./check_score.sh
Si vous entrez une valeur supérieure à 80, l'instruction conditionnelle est vraie et le message d'écho est imprimé sur la sortie standard
Cependant, si la valeur fournie pour le score est inférieure à 80, l'instruction conditionnelle est évaluée comme fausse et rien ne se passe. Le script se termine simplement.
L'instruction if-else
Dans le script shell précédent, une seule commande était exécutée après l'évaluation de l'instruction conditionnelle sur True. Lorsque la condition a été évaluée à False, rien n'a été imprimé et le script vient de se terminer. Le si-autre L'instruction nous aide à exécuter une commande si une condition est évaluée comme fausse. Le autre est ensuite suivie d'une commande ou d'une instruction si la condition renvoie False.
if [[ conditional_statement ]] then command else command fi
Modifions le script shell précédent et ajoutons un else déclaration
#!/bin/bash echo -n "Please Enter a score: " read score if [[ $score -gt 80 ]] then echo "You have passed the exam!" else echo "You have failed the exam, please try again" fi
Ici, le script shell exécute le bloc de code après le else déclaration uniquement si la première condition est fausse, c'est-à-dire si le score fourni est inférieur à 80.
Dans le premier cas, le score fourni est 90 , qui est supérieur à 80, et donc la première instruction du script est exécutée et le script se termine.
Dans le second cas, cependant, 70 est fourni, et comme la valeur est inférieure à 80, le script ignore la première instruction car elle est évaluée comme fausse et procède à l'exécution de la deuxième instruction après le else déclaration.
L'instruction if-elif-else
Jusqu'à présent, nous avons vérifié une condition qui est évaluée à Vrai ou Faux. Le elif L'instruction (else -if ) est utilisée lorsqu'il existe plusieurs instructions conditionnelles qui ont des résultats différents. Si une condition est évaluée comme fausse, il vérifie si les autres conditions sont vraies. Voici une syntaxe simple pour l'instruction if-elif-else.
if [[ conditional_statement_1 ]] then command_1 elif [[ conditional_statement_2 ]] then command_2 else command_3 fi
Considérez le script ci-dessous
#!/bin/bash echo -n "Please Enter a score: " read score if [[ $score -ge 90 ]] then echo "Excellent!" elif [[ $score -ge 70 ]] then echo "Congratulations! Job well done!" elif [[ $score -ge 50 ]] then echo "Fairly done. There's more room for improvement!" else echo "Poorly done" fi
Dans cet exemple, si le score est supérieur ou égal à 90, il imprime le message Excellent ! Cependant, si le score est inférieur à 90 mais supérieur ou égal à 70, il affiche Félicitations ! Travail bien fait ! .
Si le score est inférieur à 70, mais supérieur ou égal à 50, le message Assez bien fait est imprimé. Il y a encore place à l'amélioration !
Et enfin, si le score est inférieur à 50, il affiche Mal fait.
Instruction if imbriquée
Une instruction if imbriquée comprend une instruction if à l'intérieur d'une autre instruction if. lorsqu'une condition est vraie, le script procède à la vérification de la condition suivante. Dans la démonstration ci-dessous, nous allons prendre les valeurs d'entrée de 3 valeurs numériques et vérifier laquelle d'entre elles est la plus grande.
#!/bin/bash read -p "Please enter the value of j:" j read -p "Please enter the value of k:" k read -p "Please enter the value of l:" l if [ $j -gt $k ] then if [ $j -gt $l ] then echo "j is greatest" else echo "l is greatest" fi else if [ $k -gt $l ] then echo "k is greatest" else echo "l is greatest" fi fi
Résumé
C'était un aperçu de haut niveau des instructions conditionnelles dans les scripts bash. Comme vous l'avez vu, les instructions conditionnelles sont utilisées pour déterminer le résultat d'un script basé sur des expressions conditionnelles définies. J'espère que vous avez maintenant une base de base pour les instructions conditionnelles.