Dans cet article, nous aborderons les bases de l'expression de séquence dans Bash.
L'expression de séquence Bash génère une plage d'entiers ou de caractères en définissant un début et un point final de la plage. Il est généralement utilisé en combinaison avec for
boucles.
Expression de séquence bash #
L'expression de la séquence prend la forme suivante :
{START..END[..INCREMENT]}
- L'expression commence par une accolade ouvrante et se termine par une accolade fermante.
COMMENCER
etFIN
peuvent être des entiers positifs ou des caractères uniques.- Le
START
et leEND
les valeurs sont obligatoires et séparées par deux points..
, sans espace entre eux. - L'
INCRÉMENT
la valeur est facultative. S'il est présent, il doit être séparé duEND
valeur avec deux points..
, sans espace entre eux. Lorsque des caractères sont donnés, l'expression est développée dans l'ordre lexicographique. - L'expression s'étend à chaque nombre ou caractère entre
START
etFIN
, y compris les valeurs fournies. - Une expression mal formée reste inchangée.
Voici l'expression en action :
echo {0..3}
Lorsqu'il n'y a pas d'INCRÉMENT
est fourni l'incrément par défaut est 1 :
0 1 2 3
Vous pouvez également utiliser d'autres caractères. L'exemple ci-dessous imprime l'alphabet :
echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
Si le START
la valeur est supérieure à END
alors l'expression créera une plage qui décrémente :
for i in {3..0}
do
echo "Number: $i"
done
Number: 3
Number: 2
Number: 1
Number: 0
Lorsqu'un INCREMENT
est donné, il est utilisé comme étape entre chaque élément généré :
for i in {0..20..5}
do
echo "Number: $i"
done
Chaque nombre généré est supérieur de 5 au nombre précédent :
Number: 0
Number: 5
Number: 10
Number: 15
Number: 20
Lorsque vous utilisez des nombres entiers pour générer une plage, vous pouvez ajouter un 0
devant pour forcer chaque nombre à avoir la même longueur. et FIN
avec un zéro :
for i in {00..3}
do
echo "Number: $i"
done
Number: 00
Number: 01
Number: 02
Number: 03
L'expression peut être préfixée ou suffixée par d'autres caractères :
echo A{00..3}B
A00B A01B A02B A03B
Si l'expression n'est pas construite correctement, elle reste inchangée :
echo {0..}
0..
Conclusion #
L'expression de séquence Bash vous permet de générer une plage d'entiers ou de caractères.
Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire.