Recherche de site Web

Comment utiliser jusqu'à la boucle dans vos scripts Shell


Dans bash, for, while et jusqu'à sont trois constructions de boucles. Bien que chaque boucle diffère syntaxiquement et fonctionnellement, son objectif est de parcourir un bloc de code lorsqu'une certaine expression est évaluée.

La boucle Jusqu'à est utilisée pour exécuter un bloc de code jusqu'à ce que l'expression soit évaluée comme fausse. C'est exactement le contraire d'une boucle while. La boucle While exécute le bloc de code tant que l'expression est vraie et la boucle jusqu'à fait le contraire.

until [ expression ]
do
	code block
	...
	...
done

Décomposons la syntaxe.

  • Pour démarrer la boucle, vous devez utiliser le mot-clé jusqu'à suivi d'une expression entre accolades simples ou doubles.
  • L'expression doit être évaluée comme fausse jusqu'au début de l'exécution du bloc de code.
  • Le bloc de code lui-même est placé entre do et done.

Dans ce court article, vous apprendrez à utiliser la boucle jusqu'à dans vos scripts shell à l'aide des exemples suivants.

Créer une boucle infinie dans les scripts

Vous pouvez créer une boucle infinie en utilisant une instruction fausse comme expression. Lorsque vous essayez de simuler des boucles infinies, essayez d'utiliser sleep qui transmettra périodiquement le script.

count=0
until false
do
	echo "Counter = $count"
	((count++))
	sleep 2
done

Créer des instructions sur une seule ligne

Vous pouvez créer des instructions de boucle sur une seule ligne. Jetez un œil au code ci-dessous. C'est la même chose que notre premier exemple de boucle infinie mais sur une seule ligne. Ici, vous devez utiliser un point-virgule (;) pour terminer chaque instruction.

until false; do echo "Counter = $count"; ((count++)); sleep 2; done

Modifier le flux avec l'instruction break et continue

Vous pouvez utiliser des instructions break et continue dans la boucle while. L'instruction break sortira de la boucle et passera le contrôle à l'instruction suivante tandis que l'instruction continue ignorera l'itération en cours et démarrera l'itération suivante dans la boucle.

J'utilise le même exemple de boucle infinie. Ici, lorsque le nombre est égal à cinq, l'instruction continue passera à l'itération suivante en sautant le reste du corps de la boucle. De même, la boucle se rompt lorsque le décompte est égal ou supérieur à 10.

count=0
until false
do
  ((count++))
  if [[ $count -eq 5 ]]
  then
    continue
  elif [[ $count -ge 10 ]]
  then
    break
  fi
  echo "Counter = $count"
done

C'est tout pour cet article. Nous vous proposerons bientôt un autre article intéressant « jusqu'à », puis continuez à lire et continuez à nous soutenir.