Gammes Bash
-
Utilisez la boucle
for
pour obtenir une portée dans Bash -
Utilisez la boucle
for
avec trois expressions pour obtenir une portée dans Bash -
Utilisez la boucle
while
pour obtenir une portée dans Bash -
Utilisez
eval
pour obtenir une plage dans Bash -
Utilisez
seq
pour obtenir une plage dans 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