Überprüfen Sie, ob das Eingabeargument in Bash vorhanden ist

Olorunfemi Akinlua 20 Juni 2023
  1. Verwenden Sie $#, um zu prüfen, ob das Eingabeargument in Bash vorhanden ist
  2. Verwenden Sie $1, um zu prüfen, ob das Eingabeargument in Bash vorhanden ist
Überprüfen Sie, 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 Akinlua avatar Olorunfemi Akinlua avatar

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

Verwandter Artikel - Bash Input