Wie verwende ich if...else-Anweisung in Bash
-
if
-Anweisung inBash
-
if ... else
Anweisung inBash
-
if...elif...else
Anweisung inBash
-
Verschachtelte
if
-Anweisung inBash
Bedingte Anweisungen sind für die Entscheidungsfindung in fast allen Programmiersprachen weit verbreitet. Sie erlauben die Ausführung einer oder mehrerer Anweisungen nur dann, wenn eine bestimmte Bedingung erfüllt ist. if ... else
wird in den meisten Programmiersprachen als bedingte Anweisung verwendet. In Bash
haben wir auch if
, if...elif...else
, if ... else
und verschachtelte if
-Anweisungen als bedingte Anweisungen.
if
-Anweisung in Bash
Syntax der if
-Anweisung
if Test-Expression
then
Statements
fi
Wenn im obigen Beispiel der Test-Expression
True
ist, werden die Statements
ausgeführt. Das Schlüsselwort fi
wird verwendet, um die if
-Anweisung zu beenden.
Wenn der Test-Expression
nicht True
ist, wird keine der Anweisungen ausgeführt.
Um unseren Code lesbarer und organisierter aussehen zu lassen, können wir entweder eine Einrückung mit 4 Leerzeichen
oder 2 Leerzeichen
verwenden.
Beispiel: if
Anweisung in Bash
echo -n "Enter numnber : "
read n
rem=$(( $n % 2 ))
if [ $rem -eq 0 ]
then
echo "$n is even number"
fi
Ausgabe:
Enter numnber : 4
4 is even number
Es akzeptiert eine Zahl vom Benutzer und gibt die Ausgabe nur dann aus, wenn die Zahl gerade ist.
Wenn die Zahl gerade ist, ist der Rest null, wenn die Zahl durch zwei geteilt wird. Daher ist der Test-Expression
True
, so daß die echo
-Anweisung ausgeführt wird.
if ... else
Anweisung in Bash
Syntax der if ... else
-Anweisung
if Test-Expression
then
Statements-1
else
Statements-2
fi
Wenn in diesem Beispiel der Test-Expression
True
ist, wird die Statements-1
ausgeführt; andernfalls wird die Statements-2
ausgeführt. Um die Anweisung if ... else
zu beenden, wird das Schlüsselwort fi
verwendet.
Beispiel: if...else
-Anweisung in Bash
echo -n "Enter numnber : "
read n
rem=$(( $n % 2 ))
if [ $rem -eq 0 ]
then
echo "$n is even number"
else
echo "$n is odd number"
fi
Ausgabe:
Enter numnber : 5
4 is odd number
Es akzeptiert eine Zahl vom Benutzer und gibt eine Ausgabe aus, je nachdem, ob die eingegebene Zahl genau durch 2
teilbar ist oder nicht.
Wenn die Zahl gerade ist, ist der Rest null, wenn die Zahl durch zwei geteilt wird; daher ist der Testausdruck True
und die Anweisung echo "$n is even number"
wird ausgeführt.
Wenn die Zahl ungerade ist, ist der Rest nicht Null; daher ist der Testausdruck False
, und die Anweisung echo "$n is odd number"
wird ausgeführt.
if...elif...else
Anweisung in Bash
Syntax der if...elif...else
-Anweisung
if Test-Expression-1
then
Statements-1
elif Test-Expression-2
then
Statements-2
else
Statements-3
fi
Wenn der Test-Expression-1
True
ist, wird die Statements-1
ausgeführt. Andernfalls, wenn der Test-Expression-2
True
ist, wird die Statements-2
ausgeführt.
Wenn keiner der beiden Testausdrücke True
ist, wird die Statements-3
ausgeführt.
Wir können so viele elif
-Anweisungen haben, wie wir wollen, und die else
Anweisung ist optional.
Beispiel: if...elif...else
Aussage in Bash
echo -n "Enter the value of a: "
read a
echo -n "Enter the value of b: "
read b
if [ $a -lt $b ]
then
echo "a is less than b"
elif [ $a -gt $b ]
then
echo "a is greater than b"
else
echo "a is equal to b"
fi
Ausgabe:
Enter the value of a: 4
Enter the value of b: 4
a is equal to b
Es akzeptiert zwei Zahlen als Eingabe des Benutzers und gibt das Ergebnis aus, basierend darauf, welcher der Testausdrücke wahr ist.
Wenn a<b
, gibt das Programm aus, daß a is less than b
ist.
Wenn a>b
, druckt das Programm a is greater than b
.
Wenn keine der beiden bedingten Anweisungen wahr ist, druckt das Programm a is equal to b
.
Verschachtelte if
-Anweisung in Bash
Wenn eine if
-Anweisung in eine andere if
-Anweisung eingefügt wird, spricht man von einer verschachtelten if
-Anweisung.
echo -n "Enter numnber : "
read a
rem=$(( $a % 2 ))
if [ $rem -eq 0 ]
then
if [ $a -gt 10 ]
then
echo "$a is even number and greater than 10."
else
echo "$a is even number and less than 10."
fi
else
echo "$a is odd number"
fi
Ausgabe:
Enter numnber : 46
46 is even number and greater than 10.
Sie demonstriert die Verwendung der verschachtelten if
-Anweisung. Wenn die Zahl genau durch 2
teilbar und größer als 10
ist, wird die echo "$a is even number and greater than 10."
Anweisung ausgeführt.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn