Android

Bash while loop

Shell Scripting Tutorial for Beginners 15 - WHILE Loops

Shell Scripting Tutorial for Beginners 15 - WHILE Loops

Table des matières:

Anonim

Les boucles sont l'un des concepts fondamentaux des langages de programmation. Les boucles sont pratiques lorsque vous souhaitez exécuter une série de commandes plusieurs fois jusqu'à ce qu'une condition particulière soit remplie.

Dans les langages de script tels que Bash, les boucles sont utiles pour automatiser les tâches répétitives. Il existe 3 constructions de boucle de base dans les scripts Bash, pour la boucle, la boucle while et la boucle until.

Ce didacticiel explique les bases des boucles while dans Bash ainsi que les instructions break et continue pour modifier le flux d'une boucle.

Bash while Loop

La boucle while est utilisée pour exécuter un ensemble donné de commandes un nombre inconnu de fois tant que la condition donnée est évaluée à true.

La boucle Bash while prend la forme suivante:

while do done

La condition est évaluée avant d'exécuter les commandes. Si la condition prend la valeur true, les commandes sont exécutées. Sinon, si la condition est fausse, la boucle sera terminée et le contrôle du programme sera passé à la commande qui suit.

Dans l'exemple ci-dessous, à chaque itération, la boucle imprime la valeur actuelle de la variable i et incrémente la variable de un.

i=0 while do echo Number: $i ((i++)) done

La boucle de mar itère tant que i est inférieur ou égal à deux. Il produira la sortie suivante:

Number: 0 Number: 1 Number: 2

Boucle infinie

Une boucle infinie est une boucle qui se répète indéfiniment et ne se termine jamais. Si la condition a toujours la valeur true, vous obtenez une boucle infinie.

Dans l'exemple suivant, nous utilisons la commande intégrée : qui renvoie toujours true pour créer une boucle infinie. Vous pouvez également utiliser la commande intégrée true ou toute autre instruction qui renvoie toujours true.

while: do echo "Press to exit." sleep 1 done while: do echo "Press to exit." sleep 1 done

La boucle while ci-dessus s'exécutera indéfiniment. Vous pouvez terminer la boucle en appuyant sur CTRL+C

Voici un équivalent sur une seule ligne:

while:; do echo 'Press to exit.'; sleep 1; done while:; do echo 'Press to exit.'; sleep 1; done

Lire un fichier ligne par ligne

L'une des utilisations les plus courantes de la boucle while est de lire un fichier, un flux de données ou une variable ligne par ligne.

Dans l'exemple suivant, la boucle while lira le fichier /etc/passwd ligne par ligne et imprimera chaque ligne.

file=/etc/passwd while read -r line; do echo $line done < "$file"

Au lieu de contrôler la boucle while avec une condition, nous utilisons la redirection d'entrée ( < "$file" ) pour passer un fichier à la read qui est la commande qui contrôle la boucle. La boucle while sera exécutée jusqu'à ce que la dernière ligne soit lue.

Lorsque vous lisez un fichier ligne par ligne, utilisez toujours read avec l'option -r pour éviter que la barre oblique inverse agisse comme un caractère d'échappement.

Par défaut, la commande de read supprime les espaces blancs avant / arrière (espaces et tabulations). Utilisez l'option IFS= avant la commande de read pour éviter ce comportement

file=/etc/passwd while IFS= read -r line; do echo $line done < "$file"

Déclarations Break and Continue

Les instructions break et continue peuvent être utilisées pour contrôler l'exécution de la boucle while.

Déclaration de pause

L'instruction break termine la boucle en cours et passe le contrôle du programme à la commande qui suit la boucle terminée. Il est généralement utilisé pour terminer la boucle lorsqu'une certaine condition est remplie.

Dans l'exemple suivant, l'exécution de la boucle sera interrompue une fois que l'élément itéré actuel est égal à 2 .

i=0 while do echo "Number: $i" ((i++)) if]; then break fi done echo 'All Done!'

Number: 0 Number: 1 All Done!

Continuer la déclaration

L'instruction continue quitte l'itération actuelle d'une boucle et passe le contrôle du programme à l'itération suivante de la boucle.

Dans ce qui suit ci-dessous, une fois que l'élément itéré actuel est égal à 2 l'instruction continue fera revenir l'exécution au début de la boucle et continuera avec l'itération suivante.

i=0 while do ((i++)) if]; then continue fi echo "Number: $i" done echo 'All Done!'

Number: 1 Number: 3 Number: 4 Number: 5 All Done!

Conclusion

À présent, vous devriez avoir une bonne compréhension de l'utilisation de la boucle bash while.

terminal de boucle bash