Gammes Bash
-
Utilisez la boucle
forpour obtenir une portée dans Bash -
Utilisez la boucle
foravec trois expressions pour obtenir une portée dans Bash -
Utilisez la boucle
whilepour obtenir une portée dans Bash -
Utilisez
evalpour obtenir une plage dans Bash -
Utilisez
seqpour 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
