GNU/Linux >> Tutoriels Linux >  >> Linux

Expression de séquence bash (plage)

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 et FIN peuvent être des entiers positifs ou des caractères uniques.
  • Le START et le END 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é du END 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 et FIN , 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.


Linux
  1. Erreur de script bash :expression entière attendue ?

  2. Incrémenter le numéro de build dans Bash ?

  3. Comment lire une chaîne en tant que numéro hexadécimal dans Bash ?

  4. Bash + Vérifier le nom par expression régulière ?

  5. Bash :Expressions régulières en substitution ?

Bash printf - Comment imprimer une variable dans Bash

Bash pour la boucle

Bash Select (créer des menus)

Attaques TCP :prédiction du numéro de séquence TCP et attaques de réinitialisation TCP

Script Shell/Bash pour trouver des nombres premiers sous Linux

Script bash pour la boucle expliqué avec des exemples