GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Überprüfen Sie, ob in einem Bash-Skript mindestens zwei Argumente angegeben sind

Verwenden Sie den $# spezielle Variable. Sein Wert ist die Anzahl der Argumente. Wenn Sie also ein Skript haben, das nur Folgendes enthält:

echo $#

und führe es so aus:

thatscript foo bar baz quux

Es wird 4 ausgegeben.

In Ihrem Fall möchten Sie vielleicht so etwas tun:

if [ $# -lt 2 ]; then
    # TODO: print usage
    exit 1
fi

Ausgehend von der Anforderung aus der Frage, dass die Argumente "mindestens 2 Dinge" enthalten sollten, denke ich, dass es genauer sein könnte, Folgendes zu überprüfen:

if (( $# < 2 )); then
    # TODO: print usage
    exit 1
fi

Verwenden der arithmetischen Erweiterung (( )) wird verhindern, dass dies exit 1 trifft für jeden Wert ungleich 2.

Wenn Sie if [ $# -ne 2 ]; verwenden es löst die Bedingung für eine beliebige Anzahl von Argumenten außer 2 aus.

Bearbeiten:Es sieht so aus, als ob die akzeptierte Antwort aktualisiert wurde, um ein gleichwertiges (und tragbareres?) Beispiel dafür zu enthalten.


Linux
  1. Testen, ob Dateien mit einem Muster übereinstimmen, um ein Skript auszuführen?

  2. Befehlszeilenargumente an Bash-Skript übergeben?

  3. Bash-Skript:Prüfen, ob eine Datei eine Textdatei ist?

  4. Beenden Sie alle Prozesse, die länger als 5 Minuten von einem bestimmten Benutzer in einem Linux-Bash-Skript ausgeführt werden

  5. Es werden zwei MOTDs angezeigt, wenn ich mich mit SSH bei meinem Server anmelde

Bash-Anfängerserie Nr. 3:Übergabe von Argumenten an Bash-Skripte

Wie überprüfe ich die Syntax eines Bash-Skripts, ohne es auszuführen?

Führen Sie den Bash-Befehl auf der Jenkins-Pipeline aus

Gibt es eine Möglichkeit, Benachrichtigungen vom Bash-Skript in Ubuntu anzuzeigen?

Verstehen, wie Eingaben in Bash an Pipes gesendet werden

Bash-Skript, um zu prüfen, ob eine öffentliche HTTPS-Site aktiv ist