For Loop fait partie intégrante de tout langage de programmation. Il permet aux programmes de parcourir un certain nombre d’éléments.
Par exemple, si vous souhaitez parcourir une liste ou un tableau de ‘n’ éléments, vous utiliserez une boucle for. Prenons un exemple simple :
1Violet2Indigo3Bleu4VertTable Arc-en-ciel
Pour effectuer des actions ou pour itérer les éléments du tableau ci-dessus, nous avons besoin d’une boucle For.
Table des matières
Bash pour la boucle
Dans un script bash, la syntaxe de la boucle For est la suivante :
#!/bin/bash for VAR in 1 2 3 4 5.....N do ACTION 1 ACTION 2 ..... done
Bash For Loop est assez simple. La première ligne #!/bin/bash indique que le code est un script bash. VAR représente la variable temporaire utilisée pour le bouclage. N indique le nombre maximal d’itérations. ‘do’ et ‘done’ démarrent et arrêtent la boucle, respectivement. Les actions sont les commandes qui s’exécutent dans la boucle.
Nous pouvons exécuter Bash For Loop avec différentes variables, telles que des listes, des chaînes, des entiers et des tableaux. Cet article montrera quelques exemples courants de la boucle Bash For.
Vous pouvez directement exécuter ces programmes sur la ligne de commande bash ou les enregistrer dans un fichier et exécuter le fichier à l’aide de la commande Bash filename.sh.
Lecture de la liste statique
Considérez la liste suivante – rainbowColorList = Violet, Indigo, Blue, Green, Yellow, Orange, Red
Nous pouvons imprimer la liste de chaînes ci-dessus en utilisant la boucle Bash For comme suit :
#! /bin/sh # Define the list rainbowColorList=Violet,Indigo,Blue,Green,Yellow,Orange,Red # Comma separator pattern using //,/ for colors in ${rainbowColorList//,/ } do echo $colors done
La sortie sera la liste des éléments dans une nouvelle ligne.
#Output Violet Indigo Blue Green Yellow Orange Red
Lire un tableau
La syntaxe pour déclarer un tableau est différente. Utilisez des parenthèses pour chaque élément (String).
rainbowArray=("Violet" "Indigo" "Blue" "Green" "Yellow" "Orange" "Red") for colors in "${rainbowArray[@]}"; do echo "I like $colors" done
‘@’ est utilisé pour parcourir chaque élément du tableau.
#Output I like Violet I like Indigo I like Blue I like Green I like Yellow I like Orange I like Red
Nous pouvons également utiliser la boucle For pour imprimer les index et les éléments du tableau.
#Printing with index rainbowArray=("Violet" "Indigo" "Blue" "Green" "Yellow" "Orange" "Red") for i in "${!rainbowArray[@]}"; do echo "Color at index " $i " : " "${rainbowArray[$i]}" i=$((i+1)); done
#Output Color at index 0 : Violet Color at index 1 : Indigo Color at index 2 : Blue Color at index 3 : Green Color at index 4 : Yellow Color at index 5 : Orange Color at index 6 : Red
Notez que nous utilisons ‘!’ dans la boucle pour obtenir l’index de l’élément.
Itérer une plage de nombres
Nous pouvons utiliser Bash For Loop pour itérer sur une plage de nombres.
#iterating over range of numbers echo "Countdown begins..." for N in {10..0} do echo "$N" done
Le ‘..’ indique une plage de nombres.
#Output 10 9 8 7 6 5 4 3 2 1 0
Nous pouvons également ignorer les nombres de comptage en spécifiant la plage.
Dans l’exemple ci-dessous, nous comptons par sauts par 3.
#iterating with skip counting echo "Countdown begins..." for N in {30..0..3} do echo "$N" done
Le programme ci-dessus commence par 30 comme premier nombre et compte à rebours jusqu’à 0. Le dernier paramètre de la boucle for ‘3’ spécifie le nombre de sauts.
#Output 30 27 24 21 18 15 12 9 6 3 0
Chaînes et caractères
Nous pouvons faire beaucoup d’opérations intéressantes sur les chaînes avec Bash For Loop.
Par exemple, nous pouvons lire chaque caractère d’une chaîne en utilisant l’opérateur ‘seq’ dans une boucle For :
#read characters of a string myword="welcome" for i in $(seq 1 ${#myword}) do echo "${myword:i-1:1}" done
Notez que le ‘seq’ doit commencer par 1 pour obtenir le premier caractère en premier.
#Output W e l c o m e
Nous pouvons également imprimer les chaînes séparées par un espace une par une :
#read each word from a sentence mysentence="Welcome to toptips.fr. One stop hub for all techies" for word in $mysentence; do echo $word done
#Output Welcome to toptips.fr. One stop hub for all techies
Expressions
Semblable à tout autre langage de programmation comme Java, nous pouvons placer des expressions dans une boucle Bash For.
for (( var=10; var>=0; var-- )) do echo "Counting down...$var" done
#Output Counting down...10 Counting down...9 Counting down...8 Counting down...7 Counting down...6 Counting down...5 Counting down...4 Counting down...3 Counting down...2 Counting down...1 Counting down...0
Lecture des arguments de la ligne de commande
Pour lire à partir des arguments de la ligne de commande, nous utilisons la commande ‘read’. Dans l’exemple ci-dessous, nous obtiendrons quelques chiffres de l’utilisateur et imprimerons la somme à l’aide de Bash For Loop. Nous utilisons la variable total pour stocker le total intermédiaire et final ou la somme des nombres.
read -a array -p "Enter the numbers you want to add:" total=0 for i in ${array[@]}; do let total+=$i done echo "Sum of the numbers is: $total"
La sortie est :
#Output Enter the numbers you want to add: 3 4 66 Sum of the numbers is: 73
Trouver des nombres impairs-pairs
Pour trouver des nombres pairs et impairs entre 1 et 10 (ou n’importe quel nombre N), nous devons utiliser la condition if avec Bash for Loop. Pour déterminer un nombre pair, nous diviserons le nombre par 2 et si le reste est 0, nous le catégoriserons comme pair sinon impair.
#declare the list where the even and odd numbers will be sorted and kept evennum="" oddnum="" for (( i=1; i<=10; i++ )) do remainder=$(( $i % 2 )) if [ $remainder -eq 0 ]; then evennum="$evennum $i " else oddnum="$oddnum $i " fi done echo "Even numbers are: "$evennum echo "Odd numbers are: "$oddnum
Notez que nous donnons la plage à 10 dans l’exemple ci-dessus. Nous pouvons modifier ce nombre pour obtenir des nombres pairs et impairs entre n’importe quelle plage. Vous pouvez également essayer de lire le numéro de l’utilisateur en utilisant la commande « lire » que nous avons apprise dans la section précédente.
#Output Even numbers are: 2 4 6 8 10 Odd numbers are: 1 3 5 7 9
Boucle infinie
Infinity ou boucle infinie est une boucle qui n’arrête pas de s’exécuter, et le programme doit être forcé à s’arrêter en utilisant Ctrl+C. Nous pouvons facilement créer une boucle infinie en utilisant le ‘; ;’ opérateur à l’intérieur de la boucle for :
for (( ; ; )) do echo "Welcome to toptips.fr" done
#Output Welcome to toptips.fr Welcome to toptips.fr Welcome to toptips.fr Welcome to toptips.fr Welcome to toptips.fr Welcome to toptips.fr Welcome to toptips.fr Welcome to toptips.fr Welcome to toptips.fr Welcome to toptips.fr ^C $
Déclaration de rupture
Les instructions break sont utilisées pour sortir de la boucle lorsqu’une condition « si » est satisfaite.
for color in Violet Indigo Blue Green Yellow Orange Red do if [[ "$color" == 'Green' ]]; then break fi echo "Searching for Green, the color now is $color" done echo "I found my color $color"
Dans cet exemple, nous essayons de trouver la couleur verte. La boucle For parcourt chaque couleur, et une fois la couleur verte trouvée, le programme sort de la boucle à cause de l’instruction break.
#Output Searching for Green, the color now is Violet Searching for Green, the color now is Indigo Searching for Green, the color now is Blue I found my color Green
Continuer la déclaration
Continuer est utilisé pour ignorer la boucle actuelle et passer à la suivante en fonction d’une certaine condition. Par exemple, si vous ne voulez pas imprimer la couleur ‘Vert’ de notre programme précédent, nous pouvons mettre continue, et toutes les autres couleurs sauf le Vert seront affichées.
for color in Violet Indigo Blue Green Yellow Orange Red do if [[ "$color" == 'Green' ]]; then continue fi echo "$color" done
#Output Violet Indigo Blue Yellow Orange Red
Derniers mots
Nous avons couvert les utilisations les plus courantes d’une boucle Bash For, en utilisant des chaînes, des entiers, des tableaux et des listes. Si vous apprenez Linux mais que vous avez une machine Windows 10, vous pouvez utiliser la fonction WSL et installer Linux sur votre machine Windows.
Vous pouvez ensuite utiliser le terminal Linux de la même manière que CMD.
Ensuite, vous pouvez consulter Comment exécuter des scripts bash à l’aide de Python ?