GNU/Linux >> Tutoriels Linux >  >> Linux

Bash break :comment sortir d'une boucle

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 while standard , pour et until boucles.
  • Le select commande.

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 while boucle. 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 if déclaration. Lorsque la variable vaut deux ("$i" == 2 ), le programme quitte le while boucle en utilisant le Bash break dé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 select imprime ce message après avoir listé toutes les options et après chaque estimation incorrecte.
  • Ligne 5 lance le select déclaration et définit les options comme des nombres 1 à 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.


Linux
  1. Comment effacer une commande spécifique de l'historique Bash sous Linux

  2. Comment arrêter le script Loop Bash dans le terminal ?

  3. Comment alimenter les requêtes mysql à partir de bash

  4. Comment puis-je obtenir des valeurs uniques à partir d'un tableau dans Bash ?

  5. comment obtenir des éléments de la liste en bash?

Comment écrire une boucle dans Bash

Comment commenter dans Bash

Bash continue :comment reprendre une boucle

Bash pendant la boucle

Bash jusqu'à la boucle

Bash pause et continuer