Überprüfen Sie, ob das Eingabeargument in Bash vorhanden ist
-
Verwenden Sie
$#
, um zu prüfen, ob das Eingabeargument in Bash vorhanden ist -
Verwenden Sie
$1
, um zu prüfen, ob das Eingabeargument in Bash vorhanden ist
Wenn wir Bash-Skripte erstellen, möchten wir möglicherweise Argumente verwenden, die in unseren Skripten verwendet werden, um erfolgreich ausgeführt zu werden. Daher müssen wir ein Skript erstellen, um die Anzahl der Eingabeargumente zu überprüfen, die ein Benutzer mit dem Skript verwendet.
All dies verhindert unerwartetes Verhalten, wenn ein Benutzer die erforderlichen Argumente bei der Verwendung des Skripts oder Befehls nicht übergibt, und wir können dann eine Fehlermeldung weitergeben, die dem Benutzer mitteilt, dass er nicht die erforderliche Anzahl von Argumenten verwendet hat.
Dieser Artikel zeigt Ihnen, wie Sie überprüfen können, ob ein Eingabeargument vorhanden ist oder wie viele Argumente vorhanden sind.
Verwenden Sie $#
, um zu prüfen, ob das Eingabeargument in Bash vorhanden ist
Innerhalb von Bash enthält eine spezielle Variable, $#
, das Eingabeargument. Mit $#
können Sie überprüfen, wie viele Eingabeargumente an Ihr Bash-Skript übergeben wurden.
Ein einfaches Bash-Skript zeigt Ihnen, was diese $#
-Variable enthält, wenn sie ohne Argumente oder mit zwei Argumenten übergeben wird.
#!/bin/bash
echo "The number of input arguments passed to this script: "
echo $#
Lassen Sie uns das Skript ohne Eingabeargumente ausführen:
$ ./script.sh
Die Terminalausgabe ist unten dargestellt:
The number of input arguments passed to this script:
0
Lassen Sie uns nun zwei Argumente an dasselbe Skript übergeben:
$ ./script.sh one two
Die Ausgabe des Skripts wird wie folgt:
The number of input arguments passed to this script:
2
Jetzt können wir $#
und eine bedingte Anweisung, die prüft, ob $#
gleich Null ist (d. h. keine Eingabeargumente), in unserem Skript verwenden, um bei true
zu beenden. Wenn $#
grösser als 0 ist, wird die Bedingung false
und der else
-Teil der bedingten Anweisung wird ausgeführt.
#!/bin/bash
if [ $# -eq 0 ]
then
echo "No input arguments exist"
exit 1
else
echo "The number of input arguments passed:"
echo $#
fi
Lassen Sie uns das Skript mit dem folgenden Befehl ohne Argument ausführen:
$ ./script.sh
Die Ausgabe des Codes:
No input arguments exist
Lassen Sie uns nun einen anderen Skriptbefehl mit Argumenten ausführen:
$ ./script.sh one two
Die Ausgabe des Codes ist anders, da die Bedingungsprüfung gleich false
ist:
The number of input arguments passed:
2
Abgesehen davon können wir eine andere spezielle Variable verwenden, die die $[Nummer]
verwendet, um auf das Eingabeargument zuzugreifen. Dies sind Positionsparameter, die wir in Bash verwenden können.
Wenn wir wissen, dass wir drei Variablen erhalten oder dies festgestellt haben, können wir mit dem folgenden Code auf die drei Variablen zugreifen.
#!/bin/bash
echo "The input arguments are:"
echo $1 $2 $3
Die Ausgabe des Codes, wenn er mit drei Argumenten übergeben wird, sieht wie folgt aus:
The input arguments are:
one two three
Verwenden Sie $1
, um zu prüfen, ob das Eingabeargument in Bash vorhanden ist
Denken Sie an die Positionsparameter, die wir im vorherigen Abschnitt besprochen haben. Wir können das erste, $1
, verwenden, um zu prüfen, ob ein Eingabeargument übergeben wurde, denn wenn es kein Eingabeargument gibt, kann es keinen Wert innerhalb des Positionsparameters $1
geben.
Daher können wir die Anweisung if-else
verwenden, bei der der Bedingungsausdruck prüft, ob der Positionsparameter $1
einen Wert enthält. Wenn jedoch ein Wert vorhanden ist, gibt er die Anzahl der Eingabeargumente und das erste Argument unter Verwendung der Positionsparameter zurück.
#!/bin/bash
if [ -z "$1" ]
then
echo "Please, pass an argument"
exit 1
else
echo "The number of input arguments are"
echo $#
echo "The first one is"
echo $1
fi
Lassen Sie uns den Code ohne Argument ausführen:
$ ./script.sh
Die Ausgabe des Skripts:
Please, pass an argument
Lassen Sie es uns nun mit einigen Argumenten ausführen:
$ ./script.sh delft stack blog
Die Ausgabe des Codes:
The number of input arguments are
3
The first one is
delft
Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.
LinkedIn