logo

Script Bash – Boucle For

Puisque BASH est un langage de ligne de commande, nous obtenons une expérience assez riche en fonctionnalités pour tirer parti des compétences en programmation pour effectuer des tâches dans le terminal. Nous pouvons utiliser des boucles et des instructions conditionnelles dans les scripts BASH pour résoudre certains problèmes répétitifs et délicats d'une manière programmatique simple. Dans cet article, nous allons nous concentrer sur pour la boucle dans les scripts BASH.

En fonction du cas d'utilisation et du problème que l'on tente d'automatiser, il existe plusieurs façons d'utiliser les boucles.



  • Boucle For simple
  • Boucle for basée sur une plage
  • Itération de tableau pour les boucles
  • Style C pour les boucles
  • Boucle for infinie

Boucle For simple

Pour exécuter une boucle for, nous pouvons écrire la syntaxe suivante :

#!/bin/bash  for n in a b c; do  echo $n done>
  • Dans la première itération,n>prend la valeur a et le script imprime a.
  • Dans la deuxième itération,n>prend la valeur b et le script imprime b.
  • Dans la troisième itération,n>prend la valeur c et le script imprime c.

501

La commande ci-dessus parcourra les éléments spécifiés après le dans mot-clé un par un. Les éléments peuvent être des nombres, des chaînes ou d'autres formes de données.



Boucle for basée sur une plage

Nous pouvons utiliser des boucles for basées sur une plage. Dans ce type de boucle, nous pouvons spécifier le numéro à démarrer, à arrêter et à incrémenter à chaque itération (facultatif) de l'instruction. Vous pouvez procéder de deux manières, à savoir en mentionnant la valeur d'incrémentation/décrémentation et en incrémentant de un par défaut. La syntaxe ressemble à ceci :

#!/bin/bash  for n in {1..5};  do  echo $n done>

500

Dans le code ci-dessus, nous utilisons le {} pour spécifier une plage de nombres. À l’intérieur des accolades, nous spécifions le point de départ suivi de deux points et d’un point final. Par défaut, il s'incrémente de un. Nous imprimons donc 5 nombres de 1 à 5 inclus.



#!/bin/bash  for n in {1..5..2};  do  echo $n done>

502

Rajesh Khanna

Ici, nous pouvons voir que la boucle est incrémentée de 2 unités comme mentionné dans les accolades. Ainsi, cela rend le travail avec les chiffres très simple et pratique. Cela peut également être utilisé avec des caractères alphabétiques.

NOTE: Nous ne pouvons pas utiliser de variables à l’intérieur des accolades, nous devrons donc coder en dur les valeurs. Pour utiliser les variables, nous voyons les boucles for traditionnelles de style C dans les prochaines sections.

Itération de tableau pour les boucles

Nous pouvons facilement parcourir les tableaux dans bash en utilisant des boucles for avec une syntaxe spécifique. Nous pouvons utiliser les variables spéciales dans BASH, c'est-à-dire @ pour accéder à tous les éléments du tableau. Regardons le code :

#!/bin/bash  s=('football' 'cricket' 'hockey')  for n in ${s[@]};  do  echo $n done>

503

Nous pouvons parcourir les éléments du tableau en utilisant l'opérateur @ qui obtient tous les éléments du tableau. Ainsi, en utilisant la boucle for, nous les parcourons un par un. Nous utilisons la variable ${variable_name[@]} dans laquelle, les accolades ici développent la valeur de la variable s ici qui est un tableau de chaînes. En utilisant l'opérateur [@], nous accédons à tous les éléments et les parcourons ainsi dans la boucle for a. Ici le n est l'itérateur, nous pouvons donc imprimer la valeur ou y effectuer le traitement requis.

Style C pour les boucles

Comme indiqué précédemment, nous devons utiliser les variables à l'intérieur des boucles for pour parcourir une gamme d'éléments. Et ainsi, les boucles for de style C jouent un rôle très important. Voyons comment nous les utilisons.

#!/bin/bash  n=7 for (( i=1 ; i<=$n ; i++ ));  do  echo $i done>

504

Comme nous pouvons le voir, nous pouvons utiliser dynamiquement la valeur de la plage de conditions finales. N'oubliez pas que les espaces entre les doubles accolades peuvent être intentionnels et font partie de la syntaxe. Les boucles for de style C sont les boucles qui comportent 3 parties, l'itérateur d'initialisation, l'incrémenteur/décrémenteur et la condition de fin.

Dans la syntaxe ci-dessus, nous avons initialisé l'itérateur/compteur de boucle à 1 qui peut être n'importe quoi selon votre choix. La deuxième partie est la condition de fin, ici nous avons utilisé la variable n qui est initialisé avant la boucle for et nous utilisons donc le simple $ opérateur pour obtenir la valeur de la variable. Enfin, nous avons l'incrémenteur/décrémenteur qui change l'itérateur/compteur en une valeur qui peut être n'importe quoi mais, dans l'exemple, nous avons utilisé l'opérateur unaire (++) pour incrémenter la valeur d'une unité, ce qui équivaut à je=i+1 . On peut donc utiliser des énoncés comme je+=2, je–,++je, et ainsi de suite.

Boucle for infinie

Nous ne l’utilisons pas souvent mais c’est parfois utile pour faire fonctionner certaines choses. La syntaxe est assez simple et similaire aux boucles for de style C.

#!/bin/bash  n=4 for (( ; ; ));  do  if [ $n -eq 9 ];then  break  fi  echo $n  ((n=n+1)) done>

La boucle commence parn>réglé sur 4. Il incrémenten>par 1 à chaque itération et imprime la valeur den>jusqu'àn>devient égal à 9. Lorsquen>atteint 9, lebreak>L'instruction est exécutée et la boucle se termine. Le script s'arrête après l'impression des nombres 4 à 8.

couche réseau dans les réseaux informatiques

505

Comme nous pouvons le voir, la boucle « for » n'a aucune condition et elle boucle indéfiniment, mais nous avons une instruction de condition pour vérifier qu'elle ne dure pas éternellement. Nous utilisons l'instruction break à l'intérieur de l'instruction if afin de sortir de la boucle et d'arrêter d'itérer avec l'itérateur. Nous avons utilisé l'incrémenteur pour incrémenter la variable dans la boucle sinon la boucle est infinie. Bien sûr, nous avons besoin d’une certaine logique pour sortir de la boucle et c’est pourquoi nous devons utiliser l’instruction conditionnelle if.