Bash -Reichweite

Bash -Reichweite
Sie können die Abfolge von Zahlen in Bash auf zwei Arten iterieren. Einer ist mit der Verwendung der SEQ Befehl und ein anderer erfolgt durch Angabe des Bereichs für die Schleife. In der sek Der Befehl, die Sequenz startet von einem, die Zahl erhöht sich in jedem Schritt um eins und druckt jede Nummer in jeder Linie bis zur oberen Grenze standardmäßig aus. Wenn die Zahl von der oberen Grenze beginnt, verringert sie sich in jedem Schritt um eins um eins. Normalerweise werden alle Zahlen als Schwimmpunkt interpretiert, aber wenn die Sequenz von einer Ganzzahl beginnt, drucken die Dezimalzahlen. Wenn der SEQ -Befehl erfolgreich ausgeführt werden kann, gibt er 0 zurück; Andernfalls gibt es eine beliebige Nummer ungleich Null zurück. Sie können auch die Reihenfolge der Zahlen für die Schleife mit Bereich wiederholen. Beide SEQ Befehl und für die Schleife mit Bereich werden in diesem Tutorial unter Verwendung von Beispielen angezeigt.

Die Optionen des SEQ -Befehls:

Sie können verwenden der sek Befehl mit den folgenden Optionen.
-w

Diese Option wird verwendet, um die Zahlen mit führenden Nullen zu padeln, um alle Zahlen mit gleicher Breite zu drucken.
-F Format

Diese Option wird verwendet, um Zahlen in einem bestimmten Format zu drucken. Die schwimmende Zahl kann mit %F, %g und %e als Conversion -Zeichen formatiert werden. %G wird als Standard verwendet.
-S String

Diese Option wird verwendet, um die Zahlen mit der Zeichenfolge zu trennen. Der Standardwert ist eine neue Linie ('\ n').

Beispiele für den SEQ -Befehl:

Sie können den SEQ -Befehl auf drei Arten anwenden. Sie können nur die obere Grenze oder die obere und untere Grenze oder die obere und untere Grenze mit Inkrement- oder Dekrementwert jedes Schritts verwenden. In den folgenden Beispielen werden verschiedene Verwendungen des SEQ -Befehls mit Optionen angezeigt.

Beispiel 1: SEQ-Befehl ohne Option

Wenn die einzige Obergrenze verwendet wird, beginnt die Zahl von 1 und erhöht sich in jedem Schritt um eins um eins. Der folgende Befehl druckt die Nummer von 1 bis 4.

$ seq 4

Ausgang:
Nach der Ausführung des obigen Befehls wird die folgende Ausgabe angezeigt.

Wenn die beiden Werte mit dem SEQ -Befehl verwendet werden, wird der erste Wert als Startnummer verwendet, und der zweite Wert wird als Endnummer verwendet. Der folgende Befehl druckt die Nummer von 7 bis 15.

$ SEQ 7 15

Ausgang:
Nach der Ausführung des obigen Befehls wird die folgende Ausgabe angezeigt.

Wenn Sie drei Werte mit dem SEQ -Befehl verwenden, wird der zweite Wert für jeden Schritt als Inkrement- oder Dekrementwert verwendet. Für den folgenden Befehl beträgt die Startnummer 10, die Endnummer 1 und jeder Schritt wird durch Dekrementierung von 2 gezählt.

$ SEQ 10 -2 1

Ausgang:
Nach der Ausführung des obigen Befehls wird die folgende Ausgabe angezeigt.

Beispiel -2: SEQ mit -W -Option

Der folgende Befehl druckt die Ausgabe durch Hinzufügen von Leading Null für die Zahl von 1 bis 10.

$ seq -W 01 10

Ausgang:

Nach der Ausführung des obigen Befehls wird die folgende Ausgabe angezeigt.

Beispiel -3: SEQ mit -S -Option

Der folgende Befehl verwendet „-“ als Trennzeichen für jede Sequenznummer. Die Reihenfolge der Zahlen wird durch Hinzufügen von „-“ als Trennzeichen gedruckt.

$ seq -s - 8

Ausgang:
Nach der Ausführung des obigen Befehls wird die folgende Ausgabe angezeigt.

Beispiel -4: SEQ mit -F -Option

Der folgende Befehl druckt 10 Datumswerte ab 1 aus. Hier wird die Option „%g“ verwendet, um Sequenznummern mit anderen Zeichenfolgenwerten hinzuzufügen.

$ seq -f "%g/04/2018" 10

Ausgang:
Nach der Ausführung des obigen Befehls wird die folgende Ausgabe angezeigt.

Der folgende Befehl wird verwendet, um die Folge von Gleitkomma-Zahlen unter Verwendung von "%f" zu erzeugen. Hier beginnt die Nummer ab 3 und erhöht sich um 0.8 in jedem Schritt, und die letzte Zahl beträgt weniger als oder gleich 6.

$ seq -f "%f" 3 0.8 6

Ausgang:
Nach der Ausführung des obigen Befehls wird die folgende Ausgabe angezeigt.

Beispiel-5: Schreiben Sie die Sequenz in eine Datei

Wenn Sie die Abfolge von Zahlen in eine Datei speichern möchten, ohne in der Konsole zu drucken, können Sie die folgenden Befehle verwenden. Der erste Befehl druckt die Zahlen in eine Datei mit dem Namen “SEQ.txt”. Die Zahl erzeugt in jedem Schritt von 5 bis 20 und erhöht sich um 10 um 10. Der zweite Befehl druckt den Inhalt des “SEQ.txtDatei im Terminal.

$ SEQ 5 10 20 | CAT> SEQ.txt
$ cat seq.txt

Ausgang:
Nach der Ausführung des obigen Befehls wird die folgende Ausgabe angezeigt.

Beispiel-6: Verwendung von 'SEQ' zum Erstellen des Dateinamens

Nehmen wir an, Sie möchten Dateien mit dem Namen FN1 zu FN10 erstellen, die für die Loop mit SEQ verwendet werden. Erstellen Sie eine Datei mit dem Namen „SQ1.Bash ”und fügen Sie den folgenden Code hinzu. Für die Loop wird das 10 -fache mit dem Befehl 'SEQ' iteriert und 10 Dateien in der Sequenz FN1, FN2, FN3… FN10 erstellt.

#!/Bin/Bash
# 10 Sequenznummern generieren
denn ich in 'seq 10'
Tun
# Erstellen Sie den Dateinamen
Berühren Sie Fn $ i
Erledigt

Führen Sie die folgenden Befehle aus, um den Code der Bash -Datei auszuführen, und überprüfen Sie, ob die Dateien erstellt werden oder nicht.

$ bash sq1.verprügeln
$ ls

Ausgang:
Nach der Ausführung der obigen Befehle wird die folgende Ausgabe angezeigt.

Beispiele für die Schleife mit Bereich:

Die Alternative des Befehls "SEQ" ist Bereich. Sie können die Reichweite für die Loop verwenden, um die Abfolge von Zahlen wie 'SEQ' zu generieren. Der Bereichsausdruck wird durch Verwendung von lockigen Klammern und Doppelpunkten definiert. Die Syntax des Bereichsausdrucks ist unten gezeigt.

Syntax:

Start… Stop [… Inkrement]

Hier der Wert der Start Und Stoppen kann eine positive Ganzzahl oder Charakter sein. Diese Werte sind für die Definition der Reichweite obligatorisch und durch Doppelpunkte getrennt. Der Wert der Zuwachs kann eine positive oder negative Ganzzahl sein und es ist optional. Dieser Wert wird nach dem definiert Stoppen Wert mit Doppelpunkten. In den folgenden Beispielen wurden unterschiedliche Verwendungen des Bereichsausdrucks gezeigt.

Beispiel-7: Verwenden Sie den Bereich mit Start- und Stoppwerten

Erstellen Sie eine Bash -Datei mit dem Namen “SQ2.verprügeln”Mit dem folgenden Code. Die Schleife iteriert 5 Mal und druckt die Quadratwurzel jeder Zahl in jeder Iteration aus.

#!/Bin/Bash
# Generieren Sie die Reihe von Zahlen von 1 bis 5
für n in 1… 5
Tun
# Berechnen Sie die Quadratwurzel
((Ergebnis = n*n))
# Drucken Sie den quadratischen Wert
Echo $ n Square = $ Ergebnis
Erledigt

Führen Sie den folgenden Befehl aus, um das obige Skript auszuführen.

$ bash sq2.verprügeln

Ausgang:
Nach der Ausführung des Skripts wird die folgende Ausgabe angezeigt.

Beispiel-8: Verwenden Sie den Bereich mit positivem Inkrementwert

Standardmäßig wird die Zahl in jedem Schritt in einem Bereich wie sek. Sie können auch den Inkrementwert im Bereich ändern. Schreiben Sie den folgenden Code in eine Bash -Datei mit dem Namen “SQ3.verprügeln“. Die für Schleife im Skript wird 5 Mal itereriert; Jeder Schritt wird um 2 erhöht und alle ungeraden Zahlen zwischen 1 und 10 drucken.

#!/Bin/Bash
echo "Alle ungeraden Zahlen von 1 bis 10 sind"
# Generieren Sie ungerade Zahlen von 1 bis 10
für i in 1… 10… 2
Tun
# Den Wert ausdrucken
echo $ i;
Erledigt

Führen Sie den folgenden Befehl aus, um das obige Skript auszuführen.

$ bash sq3.verprügeln

Ausgang:

Nach der Ausführung des Skripts wird die folgende Ausgabe angezeigt.

Beispiel-9: Verwenden Sie den Bereich mit führender Null

Die Abfolge von Zahlen mit führender Null kann auch unter Verwendung des Bereichs generiert werden. Erstellen Sie eine Bash -Datei mit dem Namen SEQ4.verprügeln Mit dem folgenden Skript, um fünf sequentielle Zahlen mit Null von 1 auf 5 zu generieren, indem die String 'ID-' an der Vorderseite jeder Zahl hinzugefügt wird.

#!/Bin/Bash
echo "generieren ID -Werte:"
# Definieren Sie den Startwert des Bereichs mit führender Null
für i in 01… 5
Tun
# Drucken Sie den Wert mit 'id-'
echo "id- $ i"
Erledigt

Führen Sie den folgenden Befehl aus, um das obige Skript auszuführen.

$ bash sq4.verprügeln

Ausgang:
Nach der Ausführung des Skripts wird die folgende Ausgabe angezeigt.

Beispiel-10: Verwenden Sie den Bereich mit negativem Inkrementwert

Erstellen Sie eine Bash -Datei mit dem Namen SEQ5.verprügeln mit dem folgenden Skript, um sechs sequentielle Zahlen in absteigender Reihenfolge ab 10 zu erzeugen und in jedem Schritt um 2 abzubauen.

#!/Bin/Bash
Echo "Erzeugen Sie gerade Zahlen in absteigender Reihenfolge:"
# Definieren Sie den Startwert des Bereichs mit einem negativen Inkrementwert
denn ich in 10… 0… -2
Tun
# Drucken Sie den Wert mit 'id-'
echo "Der Wert ist $ i"
Erledigt

Führen Sie den folgenden Befehl aus, um das obige Skript auszuführen.

$ bash sq5.verprügeln

Ausgang:
Nach der Ausführung des Skripts wird die folgende Ausgabe angezeigt.

Beispiel 11: Generieren Sie sequentielle Zahlen mit Zeichen- und Zahlenwerten

Erstellen Sie eine Bash -Datei mit dem Namen SEQ6.verprügeln mit dem folgenden Skript, um Ausgabe basierend auf zwei Bereichswerten zu generieren. Die äußere Schleife erzeugt drei Zeichen von A bis C, und die innere Schleife erzeugt drei Zahlen von 1 bis 3.

#!/Bin/Bash
Echo "Die sequentielle Serie mit Alphabet und Nummer:"
# Definieren Sie den Bereich mit Alphabeten
Für Val1 in a… c
Tun
# Definieren Sie den Bereich mit Zahlen
Für Val2 in 01… 3
Tun
# Drucken Sie den Wert, indem Sie das Alphabet und die Zahl konzente
echo $ val1 $ val2
Erledigt
Erledigt

Führen Sie den folgenden Befehl aus, um das obige Skript auszuführen.

$ bash sq6.verprügeln

Ausgang:
Nach der Ausführung des Skripts wird die folgende Ausgabe angezeigt.

Beispiel-12: Verwendung des Bereichs mit Präfix und Suffix

Erstellen Sie eine Bash -Datei mit dem Namen SEQ7.verprügeln Mit dem folgenden Skript zum Generieren von 5 Dateinamen durch Hinzufügen von Präfix und Suffix mit dem Zahlenbereich. Im Skript, 'Profil"ist der Präfixwert und".png'ist der Suffixwert.

#!/Bin/Bash
echo "Die Serie der Dateinamen ist:"
# Generieren Sie fünf Dateinamen mit der Erweiterung 'PNG'
Für den Namen in Profil 1… 5.PNG; Tun
# Drucken Sie den Dateinamen
Echo "Dateiname: $ Name"
Erledigt

Führen Sie den folgenden Befehl aus, um das obige Skript auszuführen.

$ bash sq7.verprügeln

Ausgang:
Nach der Ausführung des Skripts wird die folgende Ausgabe angezeigt.

Abschluss:

In diesem Tutorial wurden zwei Möglichkeiten zur Erzeugung der Abfolge von Zahlen unter Verwendung mehrerer Beispiele gezeigt. Ein Weg ist der Befehl "SEQ", und eine andere Möglichkeit besteht darin, die Reichweite für die Schleife zu verwenden. Die Bash -Benutzer können nach dem Üben der Beispiele dieses Tutorials die Abfolge von Zahlen effizient generieren.