Bash if Block: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „=Der if-Block= '''if''' programm '''then''' anweisung1 '''else''' anweisung2 '''fi''' Der if-Block verzweigt in Abhängigkeit des Returncodes des Pr…“)
 
Zeile 28: Zeile 28:
 
*./rechnertest 172.20.103.99
 
*./rechnertest 172.20.103.99
 
  rechner ist tot
 
  rechner ist tot
 +
 +
==Variante ohne else==
 +
*cat rechnertest.spar
 +
<syntaxhighlight>
 +
#!/bin/bash
 +
if ping -c 1 -w 1 $1 > /dev/null 2>&1
 +
then
 +
echo "rechner lebt"
 +
fi
 +
</syntaxhighlight>
 +
 +
*./rechnertest.spar 172.20.103.1
 +
rechner lebt
 +
*./rechnertest.spar 172.20.103.99
 +
 +
 +
==Sonderform  mit elif==
 +
*cat el
 +
<syntaxhighlight>
 +
#!/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
 +
</syntaxhighlight>
 +
*./el
 +
wie heissen Sie :thomas
 +
hallo meister
 +
*./el
 +
wie heissen Sie :martin
 +
hallo vizemeister
 +
*./el
 +
wie heissen Sie :suxer
 +
hallo wurm

Version vom 6. Juni 2024, 06:36 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.

If.jpg

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