Der Befehl Linux Set

Der Befehl Linux Set

Der Befehl Linux Set ist ein integrierter Shell-Befehl, mit dem Sie sowohl Shell- als auch Umgebungsvariablen anzeigen oder festlegen können. In diesem Handbuch behandeln wir den Befehl SET und zeigen, wie viele Möglichkeiten verwendet werden können, wie das Befehlszeilendienstprogramm verwendet werden kann.

Grundlegende Syntax

Der Befehl set nimmt die folgende Syntax an:

$ command -options Argumente

Befehlsoptionen

Es gibt eine ganze Reihe von Optionen, die mit dem SET -Befehl verwendet werden können. Lassen Sie uns einige von ihnen erkunden:

  • -A: Die Option -A legt alle erstellten oder geänderten Variablen oder Funktionen für den Export fest.
  • -B: Die Option -B alarmiert den Benutzer sofort, wenn die Hintergrundjobs beendet werden.
  • -E: Die Option -e weist eine Shell an, zu beenden, wenn ein Befehl einen Exit -Status ungleich Null liefert. Einfach ausgedrückt, die Shell verlässt, wenn der Befehl fehlschlägt.
  • -F: Die Option -F deaktiviert die Erzeugung von Dateinamen.
  • -H: Die Option -h ist standardmäßig aktiviert. Es lokalisiert und erinnert sich dann an eine Funktion, da es auf die Ausführung wartet.
  • -N: Die Option -n liest nur Befehle, kann sie jedoch nicht ausführen.
  • -T: Die Option -t beendet beim Lesen und Ausführen eines Befehls.
  • -u: Die Option -U behandelt nicht festgelegte oder undefinierte Variablen, mit Ausnahme von speziellen Parametern wie Wildcards (*) oder „@“ als Fehler während der Parameterausdehnung.
  • -v: Die -V -Option druckt die Zeilen des Shell -Eingangs beim Lesen aus.
  • -X: Die Option -x druckt Befehlsargumente während der Ausführung

Werte beenden

Im Folgenden finden Sie die Shell -Exit -Werte, die dem Befehl SET zugeordnet sind:

0: Befehl war erfolgreich.

  1. Der Befehl ist aufgrund eines falschen Befehlsarguments fehlgeschlagen
  2. Befehlsfehler aufgrund eines erwarteten Arguments, das fehlt

Setzen Sie den Befehl ohne Optionen

Ohne Argumente listet der Befehl SET alle Shell -Variablen auf, einschließlich ihrer Werte.

$ set

Stellen Sie die Positionsparameter mit dem Befehl SET ein

Der Befehl Linux -Set kann verwendet werden, um Werte den Positionsparametern Werte zuzuweisen. Ein Positionsparameter ist eine Variable in einem Shell -Programm, und sein Wert wird als $ n bezeichnet, wobei n eine Ziffer ist, die die Position des Parameters bezeichnet.

Der Wert von $ 1 ist der erste Positionsparameter nach dem Namen der Datei oder des Befehls. Der Wert von $ 2 ist der zweite Parameter und so weiter.

Angenommen, wir führen den unten angegebenen Befehl aus:

$ set rotblaugrün

Hier entspricht Rot dem Positionalparameter $ 1, Blau entspricht dem Parameter $ 2, und schließlich entspricht Grün $ 3.

So listen Sie alle Parameter in der Reihenfolge von $ 1 $ 2 $ 3 $ 3 aus. Führen Sie den folgenden Echo -Befehl aus:

$ echo "$*"

Um den ersten Parameter aufzulisten, führen Sie aus:

$ echo $ 1

Um den zweiten Parameter aufzulisten, rennen Sie:

$ echo $ 2

Usw.

Verwenden Sie den Befehl SET, um alle Positionsparameter zu veröffentlichen

Um die Positionsparameter zu verunreinigen, führen Sie den Befehl fest.

$ set --

Wenn Sie erneut versuchen, die Positionsparameter aufzulisten, erhalten Sie eine leere Ausgabe, was bedeutet, dass sie nicht festgelegt wurden.

Ignorieren Sie eine ungebundene Variable

Standardmäßig übersieht ein Shell -Skript eine undefinierte Variable. Im Skript myScript.SH unten gezeigt, die $ foo -Variable ist noch nicht definiert und existiert daher nicht.

Wenn das Skript ausgeführt wird, wird eine leere Zeile für die Zeile zurückgegeben, die eine nicht existierende Variable enthält und die folgende Zeile ausführt:

$ ./MyScript.Sch

Diese Anomalie ist unerwünscht, und Entwickler möchten im Falle von undefinierten Variablen benachrichtigt werden. Die SET -U -Anweisung zu Beginn des Skripts druckt einen Fehler in der Shell aus, wenn das Skript in eine undefinierte Variable ausgeführt wird.

Wenn das Skript noch einmal ausgeführt wird, wird der Fehler zu einer ungebundenen Variablen angezeigt.

Zeigen Sie einen Fehler an, wenn ein Befehl nicht vorhanden ist

Wenn ein Befehl in einen Fehler ausgeführt wird und nicht ausgeführt wird, wird die Bash -Shell die verbleibenden Befehle weiter ausführen. Nehmen Sie zum Beispiel das Shell -Skript unten:

Der Befehl Foobar ist nicht vorhanden, und auf der Bash-Shell sollte ein Fehler angezeigt werden, wenn das Skript ausgeführt wird, um anzuzeigen, dass das Skript in ein Problem. Dies geschieht jedoch nicht und die Shell führt zur Ausführung der nächsten Zeile wie gezeigt:

Wie beim vorherigen Beispiel ist dies keine gute Praxis beim Schreiben von Shell -Skripten, insbesondere für Sicherheit und Debuggen. Im Idealfall sollte das Skript anhalten, wenn es auf einen Fehler stößt. Um dieses Szenario anzugehen, definieren Sie die Richtlinie SET -E zu Beginn des Skripts wie gezeigt.

Wenn Sie versuchen, das Skript erneut auszuführen, werden Sie wie gezeigt auf den Fehler stoßen:

Zeigen Sie einen Fehler in Rohrbefehlen an

Die Richtlinie set -e funktioniert nicht, wenn es sich um Leitungsbefehle handelt. Betrachten Sie das Drehbuch unten:

Wenn Sie das Skript ausführen, gibt es einen Fehler zurück, führt jedoch weiterhin den nachfolgenden Befehl aus:

Um diese Hürde zu überwinden, geben Sie die SET -EO -Pipefail -Direktive wie gezeigt weiter:

$ set -eo pipefail

Diesmal beendet das Skript die nächste Zeile und führt nicht aus.

Definieren Sie Allexport und benachrichtigen Sie Optionen

Um Allexport zu setzen und Optionen zu benachrichtigen, führen Sie den Befehl aus:

$ set -o alexport -o benachrichtigen

Abschluss

Dies waren einige Beispiele dafür, wie Sie den Befehl SET in Ihren Shell -Skripten verwenden können. Wie festgestellt, kann der Befehl SET ein praktisches Tool beim Einstellen von Positionsparametern und beim Debuggen Ihrer Shell -Skripte sein.