Shell Scripting 101. Instruction Break And Continue Sous Linux

Dans notre précédent tutoriel, nous avons appris l’utilisation de la boucle while dans les scripts shell . Maintenant, utilisons l’instruction break et continue sous Linux et manipulons le flux des boucles. Comme nous le savons, une boucle se terminera si la condition qui lui est fournie devient FALSE . Mais que se passe-t-il si vous exécutez une boucle qui doit s’arrêter ou ignorer le reste de la boucle en fonction de certaines conditions ? C’est là que les instructions break et continue dans les scripts shell sont utilisées.

À quoi servent les instructions break et continue sous Linux ? L’instruction break termine le flux d’une boucle dès que l’ instruction break est rencontrée. L’instruction continue, en revanche, redémarre la boucle dès que l’ instruction continue est rencontrée.

L’instruction Break Dans Les Scripts Shell Linux

Nous allons d’abord essayer de comprendre comment sortir d’une boucle qui a plus d’itérations. J’ai créé une boucle while qui devrait boucler 50 fois. Mais, j’ai ajouté une instruction if où dès que la 25ème boucle est terminée, l’instruction break est exécutée.

a=0
tandis que 
faire
 echo Boucle €a
 echo "La boucle va se rompre dès que c'est 25"
 si ((€a==25))
 ensuite
 Pause
 Fi
 ((a++))
Fini

Scripts shell de l’instruction Break

Nous découvrirons les instructions if dans les prochains didacticiels. Pour l’instant, vous pouvez donc vous concentrer sur l’adaptation à l’instruction break. Remarquez comment la boucle s’arrête juste après la 25e boucle.

Comme nous l’avons mentionné précédemment, une instruction break interrompra immédiatement la boucle. Tout ce qui se trouve après l’instruction break ne sera pas exécuté. Faisons une vérification de preuve de cela ici. J’ajouterai quelques instructions echo ici, après la condition if dans le script ci-dessus.

a=0
tandis que 
faire
 echo Boucle €a
 echo "La boucle va se rompre dès que c'est 25"
 si ((€a==25))
 ensuite
 echo "Rupture. Au revoir!"
 Pause
 Fi
 echo "Toujours pas cassé"
 ((a++))
Fini

Démonstration de pause immédiate

Comme vous pouvez le voir, même si nous sommes sortis de la boucle à la 25e itération, la sortie « Toujours pas cassé » n’est pas imprimée à l’écran puisque la pause a été placée avant elle.

Dans le cas où vous auriez des boucles imbriquées, l’instruction break à elle seule interrompra uniquement la boucle dans laquelle elle a été exécutée. Pour sortir de toutes les boucles, nous avons simplement besoin d’écrire le nombre de boucles à sortir juste après l’instruction break.

pause N

Donc, si vous savez que l’instruction break est imbriquée dans 3 couches de boucles pour >> while >> while >> break , vous pouvez simplement dire break 3 pour sortir de toutes les boucles au lieu de la dernière boucle while où le break a été exécuté .

Cette fonctionnalité est similaire dans les instructions break et continue sous Linux.

L’instruction Continue Dans Les Scripts Shell Linux

L’utilisation des instructions break et continue sous Linux est exactement la même. La différence réside dans la façon dont ils se comportent lorsqu’ils sont exécutés. L’instruction continue, comme nous l’avons vu précédemment, redémarrera la boucle en ignorant tout ce qui se trouve après l’instruction continue dans la boucle.

Cela permettra à la boucle de terminer le nombre entier d’itérations qu’elle est censée terminer. Tout ce qu’il fera est, pour une certaine condition, de sauter la boucle entière après l’instruction continue pour redémarrer la boucle. Voyons-le en action pour mieux le comprendre.

a=0
tandis que 
faire
 echo Boucle €a
 echo "La boucle va se rompre dès que c'est 25"
 ((a++))
 si ((€a==25))
 ensuite
 echo "REVENONS AU DEBUT !"
 Continuez
 Fi
 echo "En cours d'exécution"
Fini

J’ai déplacé l’instruction d’incrémentation avant l’instruction if. La raison en est que si nous l’avions placée là où elle se trouvait auparavant, la variable n’augmenterait jamais après 25 car la boucle n’atteint jamais cette partie du code.

Continuer la déclaration

Vous voyez, à la 24e itération, l’ instruction if a été déclenchée car la variable s’incrémente juste avant la boucle.

Si l’instruction continue est à l’intérieur d’une boucle imbriquée, nous avons juste besoin de passer un argument à l’instruction comme nous l’avons fait pour l’instruction break.

continuer N

Ici, N est le nombre de boucles à rompre. Donc, s’il y a 2 boucles dont celle où l’instruction continue a été exécutée, nous disons simplement continue 2 , et les deux boucles redémarreront.

Conclusion

Cela devrait être un court tutoriel facile à digérer pour vous permettre de comprendre comment fonctionne l’instruction break and continue dans Linux. Si vous avez besoin d’aide pour comprendre les variables, assurez-vous de lire notre didacticiel sur les variables et les tableaux dans les scripts shell . Nous couvrirons la condition if et les boucles for dans notre prochaine série de scripts Shell 101.