So lesen Sie die Befehlszeilenargumente in einer Bash

So lesen Sie die Befehlszeilenargumente in einer Bash

Wenn Sie mit Bash Scripting arbeiten, können Sie auf Situationen stoßen, in denen Sie über die Befehlszeile Argumente an Ihr Skript weitergeben müssen. In diesem Artikel werden wir die verschiedenen Möglichkeiten zum Lesen von Befehlszeilenargumenten in Bash untersuchen und Beispiele für jede Methode angeben.

Was sind Befehlszeilenargumente in Bash

Befehlszeilenargumente in Bash sind die Parameter, die an ein Bash -Skript oder -befehl übergeben werden, wenn es aus der Befehlszeile ausgeführt wird. Sie werden verwendet, um das Verhalten des Skripts oder Befehls anzupassen und können Optionen, Flags oder Werte enthalten, die vom Skript oder Befehl verwendet werden, um bestimmte Aufgaben auszuführen.

So lesen Sie die Befehlszeilenargumente in einer Bash

Um das Verhalten der Skript -Befehlszeilenargumente zu ändern, werden hauptsächlich verwendet, die Optionen oder Flags enthalten. Zum Beispiel haben Sie möglicherweise ein Skript, das eine Sicherungsoperation ausführt, und möchten eine Option zum Angeben des Zielordners für die Sicherung bei der Sicherung bei der Sicherung einfügen. Hier sind die drei Möglichkeiten, auf denen man in Bash -Skript Befehlszeilenargumente lesen kann:

    • Mit $ sign
    • Verschiebung verwenden
    • Verwenden von GETOPS -Befehl

So lesen Sie die Befehlszeilenargumente mit dem Befehl $ in bash

Die grundlegendste Möglichkeit, die Befehlszeilenargumente in Bash zu lesen, besteht darin, die Variablen $ 0, $ 1, $ 2 usw. zu verwenden. Diese Variablen repräsentieren den Skriptnamen ($ 0) und die Positionsparameter, die an das Skript übergeben wurden ($ 1, $ 2 usw. usw.). Hier ist ein Beispiel -Bash -Code, der den Befehl $ zum Lesen von Befehlszeilenargumenten verwendet:

#!/Bin/Bash
Echo "Skriptname: $ 0"
Echo "Argument1: $ 1"
Echo "Argument2: $ 2"


Dieses Skript liest Befehlszeilenargumente in Bash mit den Variablen von 0 $ 0, $ 1 und $ 2. Die Variable $ 0 enthält den Namen des Skripts selbst, während 1 $ und $ 2 die ersten und zweiten Befehlszeilenargumente enthalten, und um Argumente an das Skript zu übergeben. Hier ist die Syntax:


Hier kann der Dateiname als Argument aufgenommen werden, wenn sie ab 0 US. Die Variable $ 0 enthält den Namen des Skripts selbst, während 1 $ und $ 2 die ersten und zweiten Befehlszeilenargumente enthält, und unten ist die Ausgabe dafür:

So lesen Sie die Befehlszeilenargumente mit dem Befehl Shift in Bash in Bash

Mit dem Befehl „Shift“ in Bash können Sie die Positionsparameter nach links verschieben, das erste Argument verworfen und den Rest um eine Position herunterfahren. Dies kann nützlich sein, wenn Sie Argumente in einer Schleife verarbeiten müssen oder wenn Sie Argumente in einer bestimmten Reihenfolge behandeln möchten. Hier ist ein Beispiel:

!/Bin/Bash
Echo "Skriptname: $ 0"
während ["$#" -Gt 0]; Tun
echo "argument1": $ 1
Schicht
Erledigt


Das Skript beginnt damit, den Namen des Skripts mit der Variablen $ 0 zu drucken, die den Namen des Skripts enthält, wie es aus der Befehlszeile genannt wurde. Der nächste Abschnitt des Skripts ist eine Weile Schleife, in der prüft. Dies geschieht, indem der Wert der speziellen $# Variablen überprüft wird, die die Anzahl der Befehlszeilenargumente enthält.

Die Schleife druckt dann das aktuelle Argument mit der Variablen $ 1, die das erste Argument enthält. Dies verschiebt alle verbleibenden Argumente an einer Position, so dass 1 US -Dollar zum zweiten Argument wird, 2 US -Dollar zum dritten Argument und so weiter.

So lesen Sie die Befehlszeilenargumente mit GetOpts

Mit dem Befehl „getopts“ in Bash können Sie die Befehlszeilenargumente und -optionen analysieren. Dies ist hilfreich, wenn Sie Ihrem Skript optionale Argumente oder Flaggen angeben müssen. Hier ist ein Beispielcode, der den Befehl getopts verwendet und zwei Argumente aus der Befehlszeile lesen:

#!/Bin/Bash
während GetOpts ": A: B:" Opt; Tun
Fall $ $ entscheiden
A) arg1 = "$ optarg"
;;
b) arg2 = "$ optarg"
;;
\?) Echo "Ungültige Option -$ optarg"> & 2
;;
ESAC
Erledigt
Echo "Argument 1: $ arg1"
Echo "Argument 2: $ arg2"


Der Befehl getopts wird verwendet, um die Befehlszeilenoptionen und Argumente zu iterieren. Es dauert zwei Argumente: Eine ist eine Zeichenfolge aller erwarteten Optionen, und der andere ist der variable Name, der den Wert der aktuell verarbeiteten Option enthält.

In diesem Skript sind die erwarteten Optionen -a und -b, gefolgt von ihren entsprechenden Argumenten. Der Befehl getopts analysiert diese Optionen und Argumente und weist sie der $ opt -Variablen zu.

Die Fallanweisung wird dann verwendet, um jede Option zu verarbeiten. Wenn die Option -a ist, wird der Wert des entsprechenden Arguments der Variablen $ arg1 zugewiesen. Wenn die Option -b ist, wird der Wert des entsprechenden Arguments der Variablen $ arg2 zugewiesen. Wenn eine ungültige Option erkannt wird, wird eine Fehlermeldung an die Konsole gedruckt.

Nachdem alle Optionen und Argumente verarbeitet wurden, druckt das Skript die Werte von $ arg1 und $ arg2 mit dem Befehl echo in die Konsole. Hier ist die Ausgabe für den Code:

Abschluss

Befehlszeilenargumente in Bash werden verwendet, um Parameter an ein Skript oder Befehl zu übergeben, wenn es aus der Befehlszeile ausgeführt wird. Sie können Werte, Optionen oder Flags enthalten, die das Verhalten des Skripts ändern, und sind für das Anpassen des Verhaltens von Bash -Skripten und -befehls unerlässlich. Es gibt drei Möglichkeiten zum Lesen von Befehlszeilenargumenten und diese sind: Verwenden von $ sign, mit GetOPS -Befehl und Verwenden von SHILTS und all diese werden in diesem Handbuch erwähnt.