GNU/Linux >> Linux Esercitazione >  >> Linux

Espressione sequenza Bash (intervallo)

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 e END possono essere numeri interi positivi o caratteri singoli.
  • Il START e il END i valori sono obbligatori e separati da due punti .. , senza spazio tra di loro.
  • Il INCREMENT il valore è facoltativo. Se presente, deve essere separato dal END 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 e END , 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.


Linux
  1. Errore script Bash:è prevista un'espressione intera?

  2. Incrementare il numero di build in Bash?

  3. Bash + Verifica nome tramite espressione regolare?

  4. Bash:espressioni regolari in sostituzione?

  5. Come posso verificare se una variabile è un numero in Bash?

Bash printf - Come stampare una variabile in Bash

Bash For Loop

Bash Select (Crea menu)

Attacchi TCP:previsione del numero di sequenza TCP e attacchi di ripristino TCP

Script Shell/Bash per trovare i numeri primi in Linux

Script Bash per Loop spiegato con esempi