Nimm optionale Eingabeargumente in Bash

MD Aminul Islam 20 Juni 2023
Nimm optionale Eingabeargumente in Bash

Manchmal müssen wir eine dynamische Funktion erstellen, die in beiden ausgeführt werden kann, ohne Argumente zu übergeben oder Argumente zu übergeben. Dazu müssen wir einige Standardwerte für diese Argumente festlegen, damit die Standardargumente verwendet werden können, wenn die Argumente beim Aufrufen der Funktion nicht bestanden werden.

In diesem Artikel wird gezeigt, wie optionale Eingabeargumente für eine Funktion erstellt werden. Wir werden uns auch einige Beispiele und Erklärungen ansehen, um das Thema zu vereinfachen.

Nimm optionale Eingabeargumente in Bash

Im folgenden Beispiel drucken wir die Standardwerte. Wir haben 4 Variablen deklariert, die Standardwerte enthalten.

Der Code für unser Beispiel sieht wie folgt aus:

VAR1=${1:-foo}
VAR2=${2:-bar}
VAR3=${3:-1}
VAR4=${4:-$(date)}

echo "$VAR1"
echo "$VAR2"
echo "$VAR3"
echo "$VAR4"

Nach der Codeausführung erhalten wir die folgende Ausgabe:

foo
bar
1
Sat Aug 13 14:59:31 +06 2022

Sehen wir uns nun ein erweitertes Beispiel an. In dem unten geteilten Beispiel haben wir eine Funktion erstellt, die mit 0-, 1- und 2-Parametern arbeiten und einen Standardwert innerhalb der Funktion festlegen kann.

Nun sieht der Code für unser Beispiel wie folgt aus:

FindSum()
{
    VAR1=${1:-40}
    VAR2=${2:-50}

    if [ $# -lt 1 ];
    then
        echo "The provided parameters are: $VAR1, $VAR2."
    elif [ $# -lt 2 ];
    then
        echo
        echo "The provided parameters is: $VAR2."
    else
        echo
        echo "No parameters provided"
        VAR1=$1
        VAR2=$2
    fi
    SUM=$((VAR1+VAR2))
    echo "The sum of $VAR1 and $VAR2 is $SUM"
}

FindSum
FindSum 40
FindSum 70 30

Lassen Sie uns den Code Teil für Teil erklären.

Zuerst setzen wir die Standardwerte der Variablen mit den Zeilen VAR1=${1:-40} und VAR2=${2:-50}. Danach haben wir überprüft, ob der Wert für diese Variablen gegeben war oder nicht.

Wenn der Wert sie nicht bereitstellt, müssen wir seinen Standardwert verwenden; Verwenden Sie andernfalls den vom Benutzer angegebenen Wert.

Zuletzt haben wir einfach eine Summenoperation mit der Zeile SUM=$((VAR1+VAR2)) durchgeführt und das Ergebnis gedruckt. Hier haben wir die Funktion ohne Argumente mit FindSum aufgerufen.

Auch hier haben wir die Funktion mit einem Argument über die Zeile FindSum 40 aufgerufen. Und wir haben die Funktion mit zwei Argumenten mit der Zeile FindSum 70 30 aufgerufen.

The provided parameters are: 40, 50.
The sum of 40 and 50 is 90

The provided parameters is: 50.
The sum of 40 and 50 is 90

No parameters provided
The sum of 70 and 30 is 100

Alle in diesem Artikel verwendeten Codes sind in Bash geschrieben. Es funktioniert nur in der Linux Shell-Umgebung.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

Verwandter Artikel - Bash Input