Introduzione

L'espressione della sequenza di Bash genera un intervallo di numeri interi o caratteri definendo un punto iniziale e finale dell'intervallo. È generalmente usato in combinazione con ifor loop.

In questo articolo, tratteremo le basi dell'espressione della sequenza in Bash.

Espressione della sequenza di Bash

L'espressione sequenza assume la forma seguente:

{START..END[..INCREMENT]}
  • L'espressione inizia con una parentesi graffa di apertura e termina con una parentesi graffa di chiusura.
  • START e END possono essere numeri interi positivi o singoli caratteri.
  • I valori START e END sono obbligatori e separati con due punti .., senza spazio tra di loro.
  • Il valore INCREMENT è facoltativo, se presente deve essere separato dal valore END con due punti .., senza spazi tra loro. Quando vengono dati i caratteri, l'espressione viene espansa in ordine lessicografico.
  • L'espressione si espande a ogni numero o carattere tra START e END, inclusi i valori forniti.
  • Un'espressione formata in modo errato rimane invariata.

Ecco l'espressione in azione:

echo {0..3}

Quando INCREMENT non viene fornito, l'incremento predefinito è 1:

0 1 2 3

Puoi anche usare altri caratteri. L'esempio seguente stampa l'alfabeto:

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

Se il valore START è maggiore di END allora l'espressione creerà un intervallo che diminuisce:

for i in {3..0}
do
  echo "Number: $i"
done
Number: 3
Number: 2
Number: 1
Number: 0

Quando INCREMENT viene fornito, viene utilizzato come passaggio tra ciascun elemento generato:

for i in {0..20..5}
do
  echo "Number: $i"
done

Ogni numero generato è maggiore del numero precedente di 5:

Number: 0
Number: 5
Number: 10
Number: 15
Number: 20

Quando si utilizzano numeri interi per generare un intervallo, è possibile aggiungere un valore iniziale 0 per forzare ogni numero ad avere la stessa lunghezza. Per riempire numeri interi generati con prefisso zero iniziale sia START e END con uno zero:

for i in {00..3}
do
  echo "Number: $i"
done
Number: 00
Number: 01
Number: 02
Number: 03

L'espressione può essere preceduta o suffissata con altri caratteri:

echo A{00..3}B
A00B A01B A02B A03B

Se l'espressione non è costruita correttamente, rimane invariata:

echo {0..}
0..

Conclusione

L'espressione della sequenza Bash consente di generare un intervallo di numeri interi o caratteri.