Bash Der if-Block
Zur Navigation springen
Zur Suche springen
Was ist das?
- Das "if"-Statement in Bash ermöglicht die Ausführung von Code basierend auf einer Bedingung.
- Es überprüft den Wahrheitswert einer Bedingung und führt den Codeblock unterhalb von "if" aus, wenn die Bedingung erfüllt ist.
- Die Syntax des "if"-Statements besteht aus dem Schlüsselwort "if", gefolgt von einer Bedingung in runden Klammern und einem abschließenden Semikolon
- Der Codeblock wird durch "then" eingeleitet und durch "fi" (steht für "end if") beendet.
- Zusätzlich kann das "if"-Statement durch "else" und "elif" (eine verkürzte Form von "else if") erweitert werden, um alternative Zweige abhängig von anderen Bedingungen zu ermöglichen.
- Das "if"-Statement ist ein leistungsstarkes Konstrukt in Bash, das es ermöglicht, Code basierend auf verschiedenen Bedingungen und Szenarien zu verzweigen und so die Flexibilität und Kontrolle in Shell-Skripten zu verbessern.
Konstruktion
if programm then anweisung1 else anweisung2 fi
- Der if-Block verzweigt in Abhängigkeit des Returncodes des Programmes das ausgeführt wird.
- Ist der nReturncode gleich null, wird Anweisung1 ausgeführt; ist der Returncode ungleich null, wird Anweisung2 ausgeführt.
Nassi-Shneiderman-Diagram
Der else-Zweig kann ausgelassen oder durch einen elif-Zweig ersetzt werden. Der elif-Zweig ist eine Besonderheit bei Verschachtelungen.
- cat rechnertest
#!/bin/bash
if ping -c 1 -w 1 $1 > /dev/null 2>&1
then
echo "rechner lebt"
else
echo "rechner ist tot"
fi
- ./rechnertest 172.20.103.1
rechner lebt
- ./rechnertest 172.20.103.99
rechner ist tot
Variante ohne else
- cat rechnertest.spar
#!/bin/bash
if ping -c 1 -w 1 $1 > /dev/null 2>&1
then
echo "rechner lebt"
fi
- ./rechnertest.spar 172.20.103.1
rechner lebt
- ./rechnertest.spar 172.20.103.99
Sonderform mit elif
- cat el
#!/bin/bash
echo -n "wie heissen Sie :"
read NAME
if test $NAME = "thomas"
then
echo "hallo meister"
elif test $NAME = "martin"
then
echo "hallo vizemeister"
else
echo "hallo wurm"
fi
- ./el
wie heissen Sie :thomas hallo meister
- ./el
wie heissen Sie :martin hallo vizemeister
- ./el
wie heissen Sie :suxer hallo wurm