GNU/Linux >> Tutoriels Linux >  >> Linux

Bash continue :comment reprendre une boucle

Présentation

Le continue L'instruction est une fonction intégrée de Bash qui modifie le flux des boucles de script. Le concept n'est pas propre à Bash et apparaît dans d'autres langages de programmation.

La meilleure façon de comprendre comment le Bash continue l'énoncé fonctionne grâce à des exemples pratiques.

Ce tutoriel montre comment utiliser le Bash continue déclaration dans les scripts Bash.

Prérequis

  • Une machine exécutant Linux ou macOS.
  • Un éditeur de texte pour les exemples.
  • Connaissance de base des scripts Bash.

La déclaration continue de Bash

Le Bash continue L'instruction reprend l'itération suivante dans une boucle ou une instruction en boucle.

La syntaxe est :

continue <integer>

Le continue L'instruction n'a de sens que lorsqu'elle est appliquée à des boucles. La valeur entière indique la profondeur pour le continue déclaration. Par défaut, l'entier est 1 et écrire le numéro n'est pas obligatoire. Augmentez le nombre pour reprendre une instruction de boucle externe.

Utilisez un continue instruction en tant qu'instruction de contrôle de boucle. Par exemple, le continue L'instruction permet de terminer l'itération en cours à l'intérieur d'une boucle lorsqu'une condition spécifique est remplie. Selon le type de boucle, le programme reprend à l'itération suivante ou redémarre la boucle.

Bash continue Exemples

Vous trouverez ci-dessous des exemples et des explications sur l'utilisation de l'instruction continue dans les scripts Bash.

Les constructions de boucle principales suivantes illustrent le fonctionnement de l'instruction :

  • La boucle for continue à l'itération suivante lorsqu'elle est combinée avec continue.
  • L'instruction continue redémarre le while et until boucles.

Le select La commande apparaît également dans les exemples, même s'il ne s'agit pas d'une construction de boucle principale. L'instruction fonctionne comme une boucle et le continue l'instruction fonctionne pour n'importe quelle commande en boucle.

Utiliser Bash Continuer avec une boucle for

Utilisez le continue instruction à l'intérieur d'un if conditionnel pour contrôler le flux d'un for :

#!/bin/bash

for i in {1..10}
do
	if [[ $i == '9' ]]
	then
		echo "Number $i!"
		continue
	fi
	echo "$i"
done
echo "Done!"

Le code fait ce qui suit :

  • Ligne 3 démarre le for condition de boucle, en itérant la variable i de 1 à 10 .
  • Ligne 5 vérifie le i valeur. Lorsque la variable vaut 9 , le programme renvoie un message et relance la boucle à la prochaine itération (ligne 3 ).
  • Ligne 10 imprime le nombre sur la console uniquement lorsque l'instruction conditionnelle de la ligne 5 est Faux .

Exécutez le script pour voir les résultats.

La sortie imprime tous les numéros individuels sur la console. Lorsque la condition de la ligne 5 est évaluée à True ($i == '9' ), la console renvoie un message.

Utilisation de Bash Continuer avec la boucle imbriquée

Le continue l'instruction fonctionne avec les boucles imbriquées aussi bien. Par exemple, utilisez continue 2 pour reprendre une boucle externe :

#!/bin/bash

for i in {1..5}
do
        for j in {1..5}
        do
                if [[ $i -eq $j ]]
                then
                        echo "$i = $j"
                        continue 2
                fi
                echo "$i =/= $j"
        done
done

echo "Done!"

Le programme effectue les opérations suivantes :

  • Ligne 3 démarre la boucle externe, en incrémentant la variable i de 1 à 5 .
  • Ligne 5 démarre une boucle for interne, en incrémentant la variable j de 1 à 5 pour chaque i incrément.
  • Ligne 7 vérifie si les variables i et j sont égaux ($i -eq $j ). Si c'est le cas, le continue 2 L'instruction reprend la boucle externe à l'itération suivante. Cependant, si les valeurs sont différentes, le programme continue comme prévu.

Exécutez le script pour voir la sortie du programme.

Chaque fois que les deux valeurs sont égales, le premier nombre augmente.

Utiliser Bash Continuer avec une boucle while

Vous trouverez ci-dessous un exemple de script Bash qui utilise le <strong>continue</strong> instruction dans un while boucle :

#!/bin/bash

i=0

while [[ $i -lt 11 ]] 
do
	if [[ "$i" == '9' ]]
	then
		echo "Number $i!"
		((i++))
		continue
	fi
	echo $i
	((i++))
done

Chaque ligne fait ce qui suit :

  • Ligne 3 définit une variable i et définit la valeur sur 0 .
  • Ligne 5 lance un while boucle. La condition de fin est lorsque i est inférieur à 11 .
  • Ligne 7 indique une vérification de condition à l'aide d'un if déclaration. Lorsque la variable i est égal à 9 , le programme passe aux lignes 9-11 . Dans tous les autres cas, le code saute à la ligne 13 .
  • Lignes 9 à 11 imprimer un message sur la console, incrémenter i , et le continue l'instruction reprend la boucle à la ligne 5 .
  • Lignes 13 et 14 imprimer la variable i à la console et incrémentez-le.

Pour voir la sortie, exécutez le script depuis le terminal.

Le programme imprime tous les numéros sur la console. En raison des instructions conditionnelles et continues, un message différent s'imprime pour le numéro 9 .

Utiliser Bash Continuer avec une boucle jusqu'à

Combinez le continue déclaration avec un until loop et fournir une condition pour modifier le comportement de la boucle pour une certaine valeur. Par exemple, essayez le script suivant :

#!/bin/bash

i=0

until [[ $i -gt 10  ]]
do
	if [[ $i -eq 9  ]]
	then
		echo "Number $i!"
		((i++))
		continue
	fi
	echo $i
	((i++))
done

Le code incrémente une variable et boucle jusqu'à ce que la valeur atteigne 10 . Lorsque la variable vaut 9 , le programme affiche un message différent. Le continue l'instruction redémarre le until boucle et continue comme d'habitude.

Utiliser Bash Continuer avec une boucle sélectionnée

Le select La commande est un cas particulier car il ne s'agit pas d'une boucle de script Bash principale. La commande crée des menus qui nécessitent une entrée de l'utilisateur. Utilisez le continue pour fournir une sortie différente en fonction de la valeur sélectionnée par l'utilisateur.

Par exemple, essayez le script Bash suivant :

#!/bin/bash

PS3="Choose a number: "

select i in {1..10}
do
	echo "Selected number: $i"
	if [[ $REPLY -eq 9 ]]
	then
		echo "Number $i!"
		continue
	fi
done

Le script se compose des éléments suivants :

  • La PS3 à la ligne 3 est le message d'affichage pour le select boucle.
  • Ligne 5 définit la condition de la boucle, listant les numéros à partir de 1 à 10 . La variable i stocke l'entrée de l'utilisateur.
  • Ligne 7 fait écho à la sélection.
  • Ligne 8 effectue un contrôle. Si la valeur saisie par l'utilisateur est 9 , le programme imprime un message sur la console et continue la select boucle à la prochaine itération.

Exécutez le script et testez différentes valeurs pour voir la sortie.

Pour quitter le programme, appuyez sur CTRL +C ou ajoutez une instruction break.


Linux
  1. Comment écrire une boucle dans Bash

  2. Comment utiliser l'instruction conditionnelle if else dans le script bash

  3. Comment déboguer un script bash ?

  4. Comment reprendre une session Gnome ?

  5. Comment obtenir le statut de sortie d'une boucle dans bash

Déclaration de cas bash

Instruction Bash if..else

Bash pause et continuer

Bash Scripting - Déclaration de cas

Comment travailler avec l'instruction Case dans les scripts Bash

Comment exécuter un script bash