Bash if Block: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 14: | Zeile 14: | ||
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 | ||
Besonderheit bei Verschachtelungen. | Besonderheit bei Verschachtelungen. | ||
| − | *cat rechnertest | + | *cat > rechnertest |
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
#!/bin/bash | #!/bin/bash | ||
| Zeile 24: | Zeile 24: | ||
fi | fi | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| + | *chmod +x rechnertest | ||
*./rechnertest 172.20.103.1 | *./rechnertest 172.20.103.1 | ||
rechner lebt | rechner lebt | ||
Version vom 19. Juni 2024, 14:33 Uhr
Der if-Block
if programm then anweisung1 else anweisung2 fi
Der if-Block verzweigt in Abhängigkeit des Returncodes des Programmes das ausgeführt wird. Ist der Returncode gleich null, wird Anweisung1 ausgeführt; ist der Returncode ungleich null, wird Anweisung2 ausgeführt.
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
- chmod +x rechnertest
- ./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
