Was ist der Zweck der Verwendung des Shift-Befehls in Shell-Skripten?

Wenn der Benutzer im Shell-Skript die Befehlszeilenargumente übergibt, werden diese in den Positionsparametern $1, $2, $3… gespeichert. Der Shift-Befehl wird verwendet, um die Positionsparameter (Befehlszeilenargumente) nach links zu verschieben. Für den Benutzer ist es von Vorteil, alle unbekannten Argumente oder Array-Elemente in der Liste auszuschließen.

In diesem Beitrag wird der Zweck und die Verwendung des Shift-Befehls im Shell-Skript demonstriert.

  • Verwendung des Shift-Befehls im Shell-Skript
    • Standardverhalten des Umschaltbefehls
    • Argumente mit dem Umschaltbefehl ausgeben
    • Verschiebung Verwenden einer Schleife

Verwendung des Shift-Befehls im Shell-Skript

Der Shift-Befehl wird im Bash-Skript mit der folgenden Syntax verwendet:

Syntax:

shift n

Verwenden Sie den Shift-Befehl und definieren Sie die Zahl „N” um zum jeweiligen Positionsparameter zu wechseln.

Beispiel 1: Standardverhalten des Umschaltbefehls

Das Standardverhalten bei der Verwendung des Shift-Befehls in einem Shell-Skript besteht darin, das Befehlszeilenargument um eine Position nach links zu verschieben/zu verschieben. Letztendlich geht das erste Argument verloren und die restlichen Argumente werden neu positioniert.

Das folgende Skript begründet die obigen Aussagen:

#!/bin/bash
echo "Passed Arguments are $@"
shift
echo "Argument After shift $@"
shift
echo "Argument After Another shift $@"

Das Skript ist wie folgt definiert:

  • $@” Variable, die die Liste der übergebenen Argumente ausgibt.
  • Schicht”-Operator schaltet/verschiebt die Positionsparameter nach links.

Speichern und beenden Sie das obige Skript im Texteditor.

Übergeben Sie die Befehlszeilenargumente, um das obige Skript zu testen:

$ bash shift-script.sh 1 2 3 4 5

Die obige Ausgabe zeigt deutlich, dass Argumente nacheinander weggelassen werden.

Beispiel 2: Argumente mit dem Umschaltbefehl ausgeben

Im folgenden Skript wird die Verschiebung verwendet, um den Wert der übergebenen Argumente zu verschieben:

#!/bin/bash
# Total Passed Arguments
echo "Total arguments passed are: $#"

# $* is Listing the Passed Arguments
echo "The arguments are: $*"

echo "The First Argument is: $1"
shift 3

echo "The First Argument After Shift 3 is shifted to:  $1"
shift

echo "The First Argument After another Shift is shifted to $1"

Die Beschreibung des obigen Skripts ist unten definiert:

  • Erstens, die „$#Die Variable „wird verwendet, um die Gesamtzahl der übergebenen Argumente auszugeben.
  • Danach wird das „$*Die Variable „gibt die Liste aller übergebenen Argumente aus und die Variable $1 gibt die erste Argumentvariable über den Befehl „echo“ aus.
  • Außerdem, „Schicht 3„ verschiebt die Variable $1 so, dass sie auf das dritte Argument zeigt.
  • Ein anderer „Schicht” verschiebt die Variable $1 an die nächste Position.
  • Zum Schluss wird das Ergebnis mit einem „Echo“ Stellungnahme.

Speichern und beenden Sie das Skript der Datei.

Führen Sie die Skriptdatei aus, indem Sie das Befehlszeilenargument übergeben, um sie zu testen:

$ bash shift-script.sh 23 45 67 87 45

Die Gesamtzahl der übergebenen Argumente beträgt 5 (23, 45, 67, 87 und 45), das erste Argument (1 $) ist 23, was auf 87 und dann auf die letzte Position verschoben wird 45 von der linken Seite.

Beispiel 3: Werte mit dem Umschaltbefehl iterieren

Der Benutzer kann die Verschiebung auch in einer While-Schleife verwenden, wie im folgenden Skript gezeigt:

#!/bin/bash

a=1;
b=$#;
while [ $a -le $b ]
do
    echo "Author's Name - $a: $1";
    a=$((a + 1));
    shift 1;
done

Das Skript ist wie folgt definiert:

  • Der „ADie Variable „wird mit 1 initialisiert, um die Schleife zu starten und die Nummer des Autors auszugeben.
  • Danach wird das „BDie Variable „speichert die Gesamtzahl der übergebenen Argumente, um die Enddauer der Schleife zu definieren.
  • Dann ist die „während” Schleife initialisiert mit der Bedingung „$a„Variable ist weniger gleich (le) auf die Variable „$b“.
  • In der nächsten Zeile steht „Tun”-Anweisung gibt den Namen des Autors aus (übergebene Argumente) 1 $ Variable.
  • Dann ist die „ADie Variable „“ wird um 1 erhöht, um die Schleifeniteration fortzusetzen.
  • Am Ende ist das „Schicht 1„Variable wird verwendet, um die zu verschieben 1 $ zu den nächsten übergebenen Argumenten.

Speichern Sie das obige Skript in der Datei.

Lassen Sie uns die Liste der Autoren weitergeben.Henry Joseph Milton Timbot” zum Ausdrucken im Terminal:

$ bash shift-script.sh Henry Joseph Milton Timbot

Die Liste der Autoren „Henry“, „Joseph“, „Milton„, Und „Timbot” wird mit dem Ausdruck „Schicht“ Operator.

Abschluss

Im Shell-Skript besteht der Zweck des Shift-Befehls darin, die Positionsargumente nach links zu verschieben/zu verschieben, die jeden Parameter auf die niedrigere Position setzen. Das Standardverhalten von „shift“ besteht darin, den Parameter um eine Position nach links zu verschieben. Benutzer können die Anzahl der Schichten auch mithilfe der Syntax „Schicht n“ angeben, wobei n die Anzahl der Schichten ist. Dieser Artikel hat den Zweck des „Schicht”-Befehl im Shell-Skript mit verschiedenen Beispielen.

Schreibe einen Kommentar