Geekflare est soutenu par son public. Nous pouvons percevoir des commissions d'affiliation sur les liens d'achat présents sur ce site.
En Développement Dernière mise à jour : 24 septembre 2023
Partager sur :
Invicti Web Application Security Scanner - la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

La boucle For fait partie intégrante de tout langage de programmation. Elle 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 :

1Violette
2Indigo
3Bleu
4Vert
Tableau 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.

Boucle For Bash

Dans un script bash, la syntaxe de For Loop est la suivante :

#!/bin/bash

for VAR in 1 2 3 4 5.....N

do

 ACTION 1

 ACTION 2

.....

done

La boucle For de Bash 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 la boucle. N indique le nombre maximum 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 la boucle Bash For avec différentes variables, telles que des listes, des chaînes de caractères, des entiers et des tableaux. Cet article présente quelques exemples courants de la boucle Bash For.

Vous pouvez exécuter ces programmes directement sur la ligne de commande bash ou les enregistrer dans un fichier et les exécuter à l’aide de la commande Bash filename.sh.

Lecture d’une liste statique

Considérons la liste suivante – rainbowColorList = Violet, Indigo, Bleu, Vert, Jaune, Orange, Rouge

Nous pouvons imprimer la liste de chaînes ci-dessus à l’aide de la boucle For de Bash comme suit :

# ! /bin/sh

# Définir la liste

rainbowColorList=Violet,Indigo,Bleu,Vert,Jaune,Orange,Rouge

# Modèle de séparateur de virgules utilisant //,/

for colors in ${rainbowColorList//,/ }

do

 echo $colors

done

La sortie sera la liste des éléments dans une nouvelle ligne.

#Sortie

Violet
Indigo
Bleu
Vert
Jaune
Orange
Rouge

Lecture d’un tableau

La syntaxe de déclaration d’un tableau est différente. Utilisez des parenthèses pour chaque élément (chaîne).

rainbowArray=("Violet" "Indigo" "Bleu" "Vert" "Jaune" "Orange" "Rouge")

for colors in "${rainbowArray[@]}" ; do

 echo "I like $colors"

done

@’ est utilisé pour parcourir chaque élément du tableau.

#Output

J'aime le Violet
J'aime l'Indigo
J'aime le Bleu
J'aime le Vert
J'aime le Jaune
J'aime l'Orange
J'aime le Rouge

Nous pouvons également utiliser la boucle For pour imprimer les index et les éléments du tableau.

#Imprimer avec l'index

rainbowArray=("Violet" "Indigo" "Bleu" "Vert" "Jaune" "Orange" "Rouge")

for i in "${!rainbowArray[@]}" ;

do

 echo "Color at index " $i " : " "${rainbowArray[$i]}"

 i=$((i 1)) ;

done
#Sortie

Couleur à l'index 0 : Violet
Couleur à l'index 1 : Indigo
Couleur à l'index 2 : Bleu
Couleur à l'index 3 : Vert
Couleur à l'index 4 : Jaune
Couleur à l'index 5 : Orange
Couleur à l'index 6 : Rouge

Notez que nous utilisons ‘!’ dans la boucle pour obtenir l’indice de l’élément.

Itération d’une plage de nombres

Nous pouvons utiliser la boucle Bash For pour itérer sur une plage de nombres.

#itération sur une plage de nombres

echo "Countdown begins..."

for N in {10..0}

do

 echo "$N"

done

Le ‘..’ indique une plage de nombres.

#Sortie

10
9
8
7
6
5
4
3
2
1
0

Nous pouvons également sauter des nombres en spécifiant la plage.

Dans l’exemple ci-dessous, nous comptons par intervalles de 3.

#itération avec comptage par saut

echo "Le compte à rebours commence..."

for N in {30..0..3}

do

 echo "$N"

done

Le programme ci-dessus commence avec 30 comme premier nombre et compte à rebours jusqu’à 0. Le dernier paramètre de la boucle for ‘3’ spécifie le numéro du compte à rebours.

#Sortie

30
27
24
21
18
15
12
9
6
3
0

Chaînes et caractères

Nous pouvons effectuer de nombreuses opérations intéressantes sur les chaînes de caractères avec la boucle Bash For.

Par exemple, nous pouvons lire chaque caractère d’une chaîne en utilisant l’opérateur ‘seq’ dans une boucle For Loop :

#Lire les caractères d'une chaîne

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.

#Sortie

W
e
l
c
o
m
e

Nous pouvons également imprimer les chaînes de caractères séparées par des espaces, une par une :

#Lire chaque mot d'une phrase

mysentence="Welcome to GeekFlare. One stop hub for all techies"

for word in $mysentence ; do

 echo $word

done
#Sortie

Bienvenue 
à 
GeekFlare. 
One 
stop 
hub 
for 
all 
techies

Expressions

Comme dans tout autre langage de programmation tel que Java, nous pouvons placer des expressions à l’intérieur d’une boucle Bash For.

for (( var=10 ; var>=0 ; var-- ))

do 

 echo "Counting down...$var"

done
#Sortie

Décompte...10
Décompte...9
Décompte...8
Décompte...7
Décompte...6
Décompte...5
Décompte...4
Décompte...3
Décompte...2
Décompte...1
Décompte...0

Lecture des arguments de la ligne de commande

Pour lire les arguments de la ligne de commande, nous utilisons la commande “read”. Dans l’exemple ci-dessous, nous allons obtenir quelques chiffres de l’utilisateur et imprimer la somme à l’aide de la boucle Bash For. Nous utilisons la variable total pour stocker le total intermédiaire et final ou la somme des nombres.

read -a array -p "Entrez les nombres que vous voulez ajouter :"

total=0

for i in ${array[@]} ; do

 let total =$i

done

echo "La somme des nombres est : $total"

La sortie est la suivante :

#Sortie

Entrez les nombres que vous voulez ajouter : 3 4 66
La somme des nombres est : 73

Trouver des nombres pairs et impairs

Pour trouver les nombres pairs et impairs compris entre 1 et 10 (ou tout nombre N), nous devons utiliser la condition if et la boucle Bash for. Pour déterminer un nombre pair, nous diviserons le nombre par 2 et si le reste est égal à 0, nous le classerons dans la catégorie des nombres pairs, sinon dans celle des nombres impairs.

#déclarez la liste où les nombres pairs et impairs seront triés et conservés

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 "Les nombres impairs sont : "$oddnum

Notez que nous donnons un intervalle de 10 dans l’exemple ci-dessus. Nous pouvons modifier ce nombre pour obtenir des nombres pairs et impairs dans n’importe quel intervalle. Vous pouvez également essayer de lire le nombre à partir de l’utilisateur en utilisant la commande ‘read’ que nous avons apprise dans la section précédente.

#Sortie

Les nombres pairs sont : 2 4 6 8 10
Les nombres impairs sont : 1 3 5 7 9

Boucle infinie

Une boucle infinie est une boucle qui ne s’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 l’opérateur ‘ ; ;’ à l’intérieur de la boucle for :

for (( ; ; ))

do

 echo "Welcome to Geekflare"

done
#Output

Bienvenue à Geekflare
Bienvenue à Geekflare
Bienvenue à Geekflare
Bienvenue à Geekflare
Bienvenue à Geekflare
Bienvenue à Geekflare
Bienvenue à Geekflare
Bienvenue à Geekflare
Bienvenue à Geekflare
Bienvenue à Geekflare
^C
$

Déclaration de rupture

Les instructions Break sont utilisées pour sortir de la boucle lorsqu’une condition “if” est remplie.

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-Loop passe en revue chaque couleur, et une fois la couleur verte trouvée, le programme sort de la boucle grâce à l’instruction break.

#Output

Recherche de la couleur verte, la couleur est maintenant Violet
Recherche de la couleur verte, la couleur est maintenant Indigo
Recherche de la couleur verte, la couleur est maintenant Bleu
J'ai trouvé ma couleur Vert

Instruction Continue

L’instruction Continue est utilisée pour sauter la boucle en cours 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
#Sortie

Violet
Indigo
Bleu
Jaune
Orange
Rouge

Derniers mots

Nous avons couvert les utilisations les plus courantes d’une boucle Bash For, en utilisant des chaînes de caractères, des entiers, des tableaux et des listes. Si vous apprenez Linux mais que vous avez une machine Windows 10, vous pouvez utiliser la fonctionnalité WSL et installer Linux sur votre machine Windows.

Vous pourrez alors utiliser le terminal Linux de manière similaire à CMD.

Ensuite, vous pouvez vérifier comment exécuter des scripts bash à l’aide de Python.

  • Pensées papillon
    Auteur
Merci à nos sponsors
D'autres lectures intéressantes sur le développement
Alimentez votre entreprise
Quelques outils et services pour aider votre entreprise à se développer.
  • Invicti utilise le Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, search engine crawler, et tout ce dont vous avez besoin pour collecter des données web.
    Essayez Brightdata
  • Monday.com est un système d'exploitation tout-en-un qui vous aide à gérer vos projets, vos tâches, votre travail, vos ventes, votre CRM, vos opérations, vos flux de travail et bien plus encore.
    Essayez le lundi
  • Intruder est un scanner de vulnérabilité en ligne qui détecte les faiblesses de votre infrastructure en matière de cybersécurité, afin d'éviter des violations de données coûteuses.
    Essayer l'intrus