GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Bash-Sequenzausdruck (Bereich)

In diesem Artikel behandeln wir die Grundlagen des Sequenzausdrucks in Bash.

Der Bash-Sequenzausdruck generiert einen Bereich von ganzen Zahlen oder Zeichen, indem er einen Anfangs- und den Endpunkt des Bereichs definiert. Es wird im Allgemeinen in Kombination mit for verwendet Schleifen.

Bash-Sequenzausdruck #

Der Sequenzausdruck hat folgende Form:

{START..END[..INCREMENT]}
  • Der Ausdruck beginnt mit einer öffnenden geschweiften Klammer und endet mit einer schließenden geschweiften Klammer.
  • START und END können entweder positive ganze Zahlen oder einzelne Zeichen sein.
  • Der START und das END Werte sind obligatorisch und werden durch zwei Punkte .. getrennt , ohne Leerzeichen dazwischen.
  • Das INCREMENT Wert ist optional. Falls vorhanden, muss es vom END getrennt werden Wert mit zwei Punkten .. , ohne Leerzeichen dazwischen. Wenn Zeichen angegeben werden, wird der Ausdruck in lexikografischer Reihenfolge erweitert.
  • Der Ausdruck wird zu jeder Zahl oder jedem Zeichen zwischen START erweitert und END , einschließlich der bereitgestellten Werte.
  • Ein falsch gebildeter Ausdruck wird unverändert gelassen.

Hier ist der Ausdruck in Aktion:

echo {0..3}

Wenn kein INCREMENT vorausgesetzt, ist das Standardinkrement 1:

0 1 2 3

Sie können auch andere Zeichen verwenden. Das folgende Beispiel gibt das Alphabet aus:

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

Wenn der START value ist größer als END dann erstellt der Ausdruck einen Bereich, der dekrementiert:

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

Wenn ein INCREMENT gegeben ist, wird es als Schritt zwischen jedem generierten Element verwendet:

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

Jede generierte Zahl ist um 5 größer als die vorhergehende Zahl:

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

Wenn Sie Ganzzahlen verwenden, um einen Bereich zu generieren, können Sie eine vorangestellte 0 hinzufügen um zu erzwingen, dass jede Zahl dieselbe Länge hat. Um generierte Ganzzahlen mit führenden Nullen aufzufüllen, stellen Sie entweder START voran und END mit einer Null:

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

Dem Ausdruck können andere Zeichen vorangestellt oder angehängt werden:

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

Wenn der Ausdruck nicht korrekt aufgebaut ist, wird er unverändert gelassen:

echo {0..}
0..

Schlussfolgerung #

Mit dem Bash-Sequenzausdruck können Sie eine Reihe von Ganzzahlen oder Zeichen generieren.

Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.


Linux
  1. Bash-Skriptfehler:Integer-Ausdruck erwartet?

  2. Build-Nummer in Bash erhöhen?

  3. Wie liest man eine Zeichenfolge als Hex-Zahl in Bash?

  4. Linux Bash Shell - Spezifischer Bereich für Dateiglobbing?

  5. grep Extraktnummernbereich

Bash printf - So drucken Sie eine Variable in Bash

Bash für Schleife

Bash Select (Menüs erstellen)

TCP-Angriffe:TCP-Sequenznummernvorhersage und TCP-Reset-Angriffe

Shell/Bash-Skript zum Finden von Primzahlen in Linux

Bash-Skript für Schleife mit Beispielen erklärt