Bash if Block: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(7 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
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>
+
<syntaxhighlight lang=bash>
 
#!/bin/bash
 
#!/bin/bash
 
if ping -c 1 -w 1 $1 > /dev/null 2>&1
 
if ping -c 1 -w 1 $1 > /dev/null 2>&1
Zeile 24: Zeile 24:
 
fi
 
fi
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
*Strg + D drücken, um '''cat''' zu beenden.
 +
*chmod +x rechnertest
 
*./rechnertest 172.20.103.1
 
*./rechnertest 172.20.103.1
 
  rechner lebt
 
  rechner lebt
Zeile 31: Zeile 33:
 
==Variante ohne else==
 
==Variante ohne else==
 
*cat rechnertest.spar
 
*cat rechnertest.spar
<syntaxhighlight>
+
<syntaxhighlight lang=bash>
 
#!/bin/bash
 
#!/bin/bash
if ping -c 1 -w 1 $1 > /dev/null 2>&1
+
if ping -c 1 -w 1 $1 > /dev/null 2>&1
then
+
  then
echo "rechner lebt"
+
    echo "rechner lebt"
fi
+
fi
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Zeile 42: Zeile 44:
 
  rechner lebt
 
  rechner lebt
 
*./rechnertest.spar 172.20.103.99
 
*./rechnertest.spar 172.20.103.99
 
  
 
==Sonderform  mit elif==
 
==Sonderform  mit elif==
 
*cat el
 
*cat el
<syntaxhighlight>
+
<syntaxhighlight lang=bash>
 
  #!/bin/bash
 
  #!/bin/bash
 
  echo -n "wie heissen Sie :"
 
  echo -n "wie heissen Sie :"
Zeile 57: Zeile 58:
 
     echo "hallo vizemeister"
 
     echo "hallo vizemeister"
 
  else
 
  else
     echo "hallo wurm"
+
     echo "hallo mitglied"
 
  fi
 
  fi
 
</syntaxhighlight>
 
</syntaxhighlight>
Zeile 68: Zeile 69:
 
*./el
 
*./el
 
  wie heissen Sie :suxer
 
  wie heissen Sie :suxer
  hallo wurm
+
  hallo mitglied

Aktuelle Version vom 19. Juni 2024, 14:52 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
  • Strg + D drücken, um cat zu beenden.
  • 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 mitglied"
 fi
  • ./el
wie heissen Sie :thomas
hallo meister
  • ./el
wie heissen Sie :martin
hallo vizemeister
  • ./el
wie heissen Sie :suxer
hallo mitglied