Bash Der if-Block: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 9: | Zeile 9: | ||
= Konstruktion = | = Konstruktion = | ||
| − | + | '''if''' programm | |
| − | '''if''' programm | + | '''then''' |
| − | '''then''' | + | anweisung1 |
| − | + | '''else''' | |
| − | '''else''' | + | anweisung2 |
| − | + | '''fi''' | |
| − | '''fi''' | ||
| − | |||
| − | Der if-Block verzweigt in Abhängigkeit des Returncodes des Programmes das ausgeführt wird. | + | *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. | |
| − | ausgeführt. | ||
| − | + | ==Nassi-Shneiderman-Diagram== | |
| + | {{#drawio:if-nassi}} | ||
Der else-Zweig kann ausgelassen oder durch einen elif-Zweig ersetzt werden. Der elif-Zweig ist eine | Der else-Zweig kann ausgelassen oder durch einen elif-Zweig ersetzt werden. Der elif-Zweig ist eine | ||
| Zeile 80: | Zeile 78: | ||
wie heissen Sie :suxer | wie heissen Sie :suxer | ||
hallo wurm | hallo wurm | ||
| + | |||
| + | =Aufgaben= | ||
| + | *[[Aufgaben Bash if]] | ||
Aktuelle Version vom 6. Juni 2023, 15:26 Uhr
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
