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.
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