English English French French Spanish Spanish German German
Geekflare est soutenu par notre public. Nous pouvons gagner des commissions d'affiliation en achetant des liens sur ce site.
Partager sur:

10 exemples de boucle Bash For avec explications

Bash For Exemples de boucles
Scanner de sécurité des applications Web Invicti – la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

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 :

1Violet
2Indigo
3Bleu
4Green
Table 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.

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.

Reading Static List

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

Reading an Array

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.

Iterating Range of Numbers

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

Strings and Characters

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 GeekFlare. One stop hub for all techies"

for word in $mysentence; do

    echo $word

done
#Output

Welcome 
to 
GeekFlare. 
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

Reading Command-Line Arguments

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

Finding Odd-Even Numbers

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

Infinite Loop

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 Geekflare"

done
#Output

Welcome to Geekflare
Welcome to Geekflare
Welcome to Geekflare
Welcome to Geekflare
Welcome to Geekflare
Welcome to Geekflare
Welcome to Geekflare
Welcome to Geekflare
Welcome to Geekflare
Welcome to Geekflare
^C
$

Break Statement

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

Continue Statement

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

Mot de la fin

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 en utilisant Python.

Merci à nos commanditaires
Plus de bonnes lectures sur le développement
Alimentez votre entreprise
Certains des outils et services pour aider votre entreprise à se développer.
  • Invicti utilise 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, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.
    Essayez Brightdata
  • Semrush est une solution de marketing numérique tout-en-un avec plus de 50 outils de référencement, de médias sociaux et de marketing de contenu.
    Essayez Semrush
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.
    Essayez Intruder