Wie verwende ich if...else-Anweisung in Bash

Suraj Joshi 30 Januar 2023
  1. if-Anweisung in Bash
  2. if ... else Anweisung in Bash
  3. if...elif...else Anweisung in Bash
  4. Verschachtelte if-Anweisung in Bash
Wie verwende ich if...else-Anweisung in Bash

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 avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn