Présentation
Dans les scripts Bash, un break L'instruction aide à fournir un contrôle à l'intérieur des instructions de boucle. Au lieu d'attendre la condition de fin, un break L'instruction aide à sortir d'une boucle avant que la condition de fin ne se produise.
Les instructions de la boucle de contrôle (break et continuer) se combinent logiquement avec des instructions conditionnelles telles que if elif else pour créer des situations spéciales à l'intérieur des boucles.
Ce didacticiel vous apprend à utiliser le break instruction efficacement dans les boucles de script Bash.
Prérequis
- Une machine exécutant macOS ou Linux.
- Principes de base des scripts bash (comme l'écriture et l'exécution d'un script).
- Un éditeur de texte pour écrire les exemples de script Bash, comme nano.
Déclaration de rupture bash
La break L'instruction termine l'itération de la boucle en cours et quitte la boucle. Lorsqu'il est combiné avec une condition, break aide à fournir une méthode pour sortir de la boucle avant que le cas final ne se produise.
La break de Bash les instructions s'appliquent toujours aux boucles.
La syntaxe est :
break <integer>
La valeur entière est facultative et elle est 1 par défaut. Le nombre définit la profondeur de la break pour les boucles imbriquées. Par conséquent, pour rompre avec une boucle for imbriquée, utilisez break 2 .
Exemples de rupture bash
Les exemples ci-dessous montrent comment sortir de différents types de boucles en utilisant le break déclaration. Les exemples incluent :
- Le
whilestandard , pour etuntilboucles. - Le
selectcommande.
Chaque exemple de script Bash ci-dessous est accompagné d'une explication.
Sortir d'une boucle while
Utilisez le break instruction pour quitter un while boucle lorsqu'une condition particulière se réalise. Le script suivant utilise un break dans un while boucle :
#!/bin/bash
i=0
while [[ $i -lt 11 ]]
do
if [[ "$i" == '2' ]]
then
echo "Number $i!"
break
fi
echo $i
((i++))
done
echo "Done!"
Chaque ligne du script effectue les actions suivantes :
- Ligne 3 définit et définit la variable
ià0. - Ligne 5 démarre le
whileboucle. La condition de fin est lorsque la variable est inférieure à onze ($i -lt 11). - Ligne 7 effectue une vérification à l'aide d'un
ifdéclaration. Lorsque la variable vaut deux ("$i" == 2), le programme quitte lewhileboucle en utilisant le Bashbreakdéclaration à la ligne 10 . Dans ce cas, le code saute à la ligne 16 . Si la variable est un nombre différent, le script continue comme prévu à la ligne 12 .
Exécutez le script pour voir les résultats.
Le programme répertorie les nombres jusqu'à 2 et quitte le script.
Utilisation de break Inside pour les boucles
Un for loop incrémente une variable automatiquement. Pour ajouter une instruction conditionnelle et quitter un for boucler tôt, utilisez un break déclaration. Le code suivant montre un exemple d'utilisation d'un break dans un for boucle :
#!/bin/bash
for i in {1..10}
do
if [[ $i == '2' ]]
then
echo "Number $i!"
break
fi
echo "$i"
done
echo "Done!"
Lorsque la valeur entière est égale à deux ($i == '2' ), le programme imprime un message et quitte le for boucle grâce au break déclaration.
Par conséquent, l'exécution du script termine le programme lorsque la variable i atteint deux et saute à la dernière ligne de code.
Suppression d'une boucle jusqu'à
Un Bash until loop est l'une des trois constructions de boucle fondamentales. Ajouter une break pour contrôler le déroulement du programme et quitter la boucle dans une condition différente.
Ci-dessous un exemple de programme :
#!/bin/bash
i=0
until [[ $i -gt 10 ]]
do
if [[ $i -eq 2 ]]
then
echo "Number $i!"
break
fi
echo $i
((i++))
done
echo "Done!"
Bien que le until la boucle contient une condition de fin ($i -gt 10 ), le corps de la boucle contient une autre condition ($i -eq 2 ). Étant donné que la deuxième condition se produit avant la première, le programme entre le if corps de l'instruction, qui contient une instruction Bash break pour sortir de la boucle.
L'exécution du script montre que le programme se termine lorsque la variable i atteint la valeur 2 .
Utilisation de break à l'intérieur d'une boucle sélectionnée
Le select La commande crée des menus et se comporte comme une boucle infinie, même si ce n'est pas l'une des constructions de boucle principales. Pour quitter le select élégamment, créez un cas pour lequel le programme se termine et utilisez break pour quitter la boucle.
Le code ci-dessous illustre un jeu de devinettes de nombres textuels utilisant un select déclaration :
#!/bin/bash/
PS3="Guess my favorite number: "
select i in {1..10}
do
echo "Selected number: $i"
if [[ $REPLY -eq 2 ]]
then
echo "Correct! $i is my favorite. Thanks for playing!"
break
fi
echo "Not my favorite. Try again!"
done
Le code fait ce qui suit :
- Ligne 3 affiche le message d'instruction. Le
selectimprime ce message après avoir listé toutes les options et après chaque estimation incorrecte. - Ligne 5 lance le
selectdéclaration et définit les options comme des nombres1à10. - Ligne 8 vérifie si le nombre sélectionné est égal à
2, qui est la bonne supposition. Si la vérification réussit, l'instruction Bash break permet de sortir de la boucle et de terminer le jeu.
Exécutez le script pour jouer au jeu de devinettes.
Entrez différentes valeurs pour voir les résultats.
Pour développer davantage le script, essayez d'ajouter un elif pour vérifier les entrées hors plage ou remplacez-la par une instruction case pour prendre en compte diverses situations d'entrée.