In questo articolo, tratteremo le basi dell'espressione di sequenza in Bash.
L'espressione della sequenza Bash genera un intervallo di numeri interi o caratteri definendo un punto di inizio e di fine dell'intervallo. Viene generalmente utilizzato in combinazione con for
loop.
Espressione sequenza Bash #
L'espressione della 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 caratteri singoli.- Il
START
e ilEND
i valori sono obbligatori e separati da due punti..
, senza spazio tra di loro. - Il
INCREMENT
il valore è facoltativo. Se presente, deve essere separato dalEND
valore con due punti..
, senza spazio tra di loro. Quando vengono forniti i caratteri, l'espressione viene espansa in ordine lessicografico. - L'espressione si espande a ogni numero o carattere tra
START
eEND
, compresi i valori forniti. - Un'espressione formata in modo errato viene lasciata invariata.
Ecco l'espressione in azione:
echo {0..3}
Quando nessun INCREMENT
viene fornito l'incremento predefinito è 1:
0 1 2 3
Puoi anche usare altri personaggi. 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 START
il valore è maggiore di END
quindi 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 un INCREMENT
viene fornito, viene utilizzato come passaggio tra ogni 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 utilizzi numeri interi per generare un intervallo, puoi aggiungere uno 0
iniziale per forzare ogni numero ad avere la stessa lunghezza. Per riempire gli interi generati con il prefisso di zeri iniziali o START
e END
con zero:
for i in {00..3}
do
echo "Number: $i"
done
Number: 00
Number: 01
Number: 02
Number: 03
L'espressione può avere un prefisso o un suffisso con altri caratteri:
echo A{00..3}B
A00B A01B A02B A03B
Se l'espressione non è costruita correttamente, viene lasciata invariata:
echo {0..}
0..
Conclusione #
L'espressione della sequenza Bash ti consente di generare un intervallo di numeri interi o caratteri.
Se hai domande o feedback, sentiti libero di lasciare un commento.