Website-Suche

Bash-Skript: Anzahl der Argumente, die an das Skript übergeben werden


In einigen Bash-Skripten gibt es eine Option, um Argumente an das Skript zu übergeben, wenn Sie es ausführen. Auf diese Weise kann der Benutzer weitere Informationen in demselben Befehl angeben, der zum Ausführen des Skripts verwendet wurde.

Wenn Sie Benutzern die Möglichkeit geben möchten, Argumente in Ihrem Bash-Skript zu übergeben, ist es wichtig, eine Art Fehlerüberprüfung einzuschließen, um sicherzustellen, dass die erwartete Anzahl von Argumenten übergeben wurde. Darüber hinaus können Sie festlegen, dass Ihr Skript je nach Anzahl der übergebenen Argumente unterschiedlich reagiert. Aus diesem Grund müssen Sie die Anzahl der an das Skript übergebenen Argumente ermitteln.

In diesem Tutorial erfahren Sie, wie Sie die Anzahl der Argumente überprüfen, die an ein Bash-Skript auf einem Linux-System übergeben werden. Wir werden einige Beispiele durchgehen, damit Sie sehen können, wie diese Funktionalität in einem Bash-Skript aussieht.

In diesem Tutorial lernen Sie:

  • So ermitteln Sie die Anzahl der Argumente, die an ein Bash-Skript übergeben werden
  • So greifen Sie auf die übergebenen Argumente zu
  • So verwenden Sie die Anzahl der Argumente für die Fehlerüberprüfung

Beispiele für die Überprüfung der Anzahl der Argumente, die an ein Bash-Skript übergeben werden

Sehen Sie sich einige der folgenden Beispiele an, um die Anzahl der Argumente zu überprüfen, die an ein Bash-Skript übergeben werden. Sie werden auch sehen, wie diese Informationen im Zusammenhang mit der Fehlerüberprüfung und der Bestimmung der nächsten Aktion im Skript nützlich sein können.

  1. Die Anzahl der Argumente wird immer innerhalb der Variablen $# gespeichert. Wir können dies in unserem Bash-Skript wie folgt verwenden:

    #!/bin/bash
    
    echo "The number of arguments in this script is: $#"

    Folgendes passiert, wenn wir dieses Skript ausführen:

    
    ./test.sh 
    The number of arguments in this script is: 0
    
    ./test.sh arg1 arg2 arg3
    The number of arguments in this script is: 3
    
  2. Die Argumente selbst werden in Variablen wie $1, $2, $3 und so weiter gespeichert. Sehen Sie sich das folgende Beispiel an, um zu sehen, wie wir aus dem Bash-Skript heraus auf die Argumente zugreifen können:

    #!/bin/bash
    
    echo "Number of arguments: $#"
    echo "The arguments are: $1 $2 $3"

    Folgendes passiert, wenn wir das Skript mit drei Argumenten ausführen:

    
    ./test.sh arg1 arg2 arg3
    Number of arguments: 3
    The arguments are: arg1 arg2 arg3
    
  3. Das Problem mit dem obigen Skript ist, dass es nur mit drei oder weniger Argumenten funktioniert. Aber vielleicht sind wir uns nicht sicher, wie viele Argumente der Benutzer anhängen wird, und wir möchten sie alle wiederholen. In diesem Fall können wir die Variable $@ verwenden, die alle Argumente enthält, die übergeben wurden. Beachten Sie, dass Sie alternativ die Variable $* verwenden können, die das Gleiche tut.

    #!/bin/bash
    
    echo "Number of arguments: $#"
    echo "The arguments are: $@"

    Folgendes passiert, wenn wir das Skript mit fünf Argumenten ausführen:

    
    ./test.sh arg1 arg2 arg3 arg4 arg5
    Number of arguments: 5
    The arguments are: arg1 arg2 arg3 arg4 arg5
    
  4. Wir haben die Fehlerüberprüfung bereits erwähnt. Eine gemeinsame Komponente einiger Bash-Skripte ist, dass sie eine bestimmte Anzahl von Argumenten erwarten. Wenn der Benutzer ein Argument vergisst oder zu viele Argumente eingibt, kann das Skript einen Fehler ausgeben und nicht fortfahren. Hier ist ein Skript, das nur ausgeführt wird, wenn es erkennt, dass es insgesamt drei Argumente gibt:

    #!/bin/bash
    
    if [ $# -ne 3 ]; then
            echo "please specify 3 arguments"
    else
            echo "there are 3 arguments"
            echo "the arguments are $@"
    fi

    Folgendes passiert, wenn wir das Skript mit der richtigen und falschen Anzahl von Argumenten ausführen.

    
    ./test.sh arg1 arg2 arg3
    there are 3 arguments
    the arguments are arg1 arg2 arg3
    
    ./test.sh arg1 arg2
    please specify 3 arguments
    
    ./test.sh arg1 arg2 arg3 arg4
    please specify 3 arguments
    

    Das Skript verwendet eine if-Anweisung, um zu überprüfen, ob die Anzahl der Argumente nicht gleich drei ist. Wenn dies nicht der Fall ist, erhalten Sie die Fehlermeldung. Wenn die Anzahl der Argumente gleich drei ist, wird die else-Klausel ausgelöst, die die Argumente wiedergibt.

Abschließende Gedanken

In diesem Tutorial haben Sie gesehen, wie Sie die Anzahl der Argumente in einem Bash-Skript unter Linux überprüfen. Sie haben auch gelernt, wie Sie auf die Daten in diesen Argumenten zugreifen und welche Variablen zum Speichern dieser Informationen verwendet werden. Da die Überprüfung der Anzahl der Argumente häufig bei der Fehlerüberprüfung verwendet wird, insbesondere bei einer if-Anweisung, haben Sie auch ein Beispiel dafür gesehen. Fühlen Sie sich frei, unsere Beispiele auf Ihrem eigenen System zu verwenden und sie nach Bedarf so zu bearbeiten, dass sie in Ihre eigenen Skripte passen.

Verwandte Artikel: