GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment utiliser les instructions conditionnelles dans les scripts Bash

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.


Ubuntu
  1. Comment utiliser les commandes d'historique de Bash

  2. Comment utiliser un mot de passe crypté dans le script Linux Bash Shell

  3. Comment utiliser la commande Uptime dans Ubuntu Linux

  4. Comment déboguer un script bash ?

  5. Confirmation automatique lors de l'exécution de scripts bash ?

Comment utiliser la commande de lecture Bash

Comment utiliser la commande echo dans les scripts Bash sous Linux

Comment travailler avec l'instruction Case dans les scripts Bash

Comment exécuter un script bash

Comment utiliser if-else dans les scripts shell ?

Comprendre Bash If Else et d'autres instructions conditionnelles