Gammes Bash

Fumbani Banda 30 janvier 2023
  1. Utilisez la boucle for pour obtenir une portée dans Bash
  2. Utilisez la boucle for avec trois expressions pour obtenir une portée dans Bash
  3. Utilisez la boucle while pour obtenir une portée dans Bash
  4. Utilisez eval pour obtenir une plage dans Bash
  5. Utilisez seq pour obtenir une plage dans Bash
Gammes Bash

Ce didacticiel montre comment parcourir une plage d’entiers en bash avec la boucle for et la boucle while.

Utilisez la boucle for pour obtenir une portée dans Bash

Le script bash ci-dessous utilise une boucle for avec une extension d’accolade pour parcourir une plage de nombres. Les nombres à l’intérieur des accolades sont incrémentés séquentiellement.

#!/bin/bash

printf "Print Numbers from 0 to 5\n"
for x in {0..5}
do
printf "number:$x\n"
done

Production :

Print Numbers from 0 to 5
number:0
number:1
number:2
number:3
number:4
number:5

Utilisez la boucle for avec trois expressions pour obtenir une portée dans Bash

Le script utilise une boucle for avec une triple expression comme en langage C. Ici, expr1 est l’initialisation, expr2 est la condition et expr3 est l’incrément.

Dans notre cas, x est initialisé à 0, x est testé s’il est inférieur ou égal à 5, et enfin, x est incrémenté de 1.

#!/bin/bash

max=5
printf "Print Numbers from 0 to $max\n"
for ((x=0;x<=max;x++)); do
    printf "number: $x\n"
done

Production :

Print Numbers from 0 to 5
number: 0
number: 1
number: 2
number: 3
number: 4
number: 5

Utilisez la boucle while pour obtenir une portée dans Bash

Cela utilise une boucle while avec un opérateur de comparaison binaire, -le, qui est utilisé pour la comparaison de valeurs arithmétiques.

Dans notre cas, la boucle while s’exécute tant que x est inférieur ou égal à la variable $max.

#!/bin/bash

x=0
max=5
printf "Print numbers from $x to $max\n"
while [ $x -le $max ]; do
    printf "number: $x\n"
    x=$(($x+1))
done

Production :

Print numbers from 0 to 5
number: 0
number: 1
number: 2
number: 3
number: 4
number: 5

Utilisez eval pour obtenir une plage dans Bash

eval est une commande bash utilisée pour exécuter des arguments en tant que commandes shell. Dans le script ci-dessous, les accolades génèrent des nombres de 0 à $max par incréments de 1, la boucle for parcourt ces nombres et la commande printf les affiche.

#!/bin/bash

max=4

printf "Print Numbers from 0 to $max\n"
for x in `eval echo {0..$max}`
do
printf "number: $x\n"
done

Production :

Print Numbers from 0 to 4
number: 0
number: 1
number: 2
number: 3
number: 4

Utilisez seq pour obtenir une plage dans Bash

seq est une commande bash utilisée pour générer des nombres de start à finish par incréments.

Dans notre cas, seq génère des nombres de x à $max par incréments de 1. La boucle for itère sur ces nombres, et la commande printf permet de les afficher.

x=0
max=5

printf "Print numbers from $x to $max\n"
for x in $(seq $x $max)
do
printf "number: $x\n"
done

Production :

Print numbers from 0 to 5
number: 0
number: 1
number: 2
number: 3
number: 4
number: 5
Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub

Article connexe - Bash Loop