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
eEND
possono essere numeri interi positivi o singoli caratteri.- I valori
START
eEND
sono obbligatori e separati con due punti..
, senza spazio tra di loro. - Il valore
INCREMENT
è facoltativo, se presente deve essere separato dal valoreEND
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
eEND
, 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.