Bash Der case-Block: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „Der case-Block dient der Durchführung eines Stringvergleiches. Er wird sequentiell von oben nach unten abgearbeitet. Bei Übereinstimmungen mit einem definie…“)
 
 
(6 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Der case-Block dient der Durchführung eines Stringvergleiches. Er wird sequentiell von oben nach unten abgearbeitet. Bei  
+
==Was ist das?==
Übereinstimmungen mit einem definierten Muster wird der darauf folgende Befehl ausgeführt (bzw. die darauf folgende  
+
*Der case-Block dient der Durchführung eines Stringvergleiches.  
Befehlsliste). Bei der ersten gefundenen Übereinstimmung terminiert der case-Block.  
+
*Er wird sequentiell von oben nach unten abgearbeitet.  
 
+
*Bei Übereinstimmungen mit einem definierten Muster wird der darauf folgende Befehl ausgeführt (bzw. die darauf folgende Befehlsliste).  
Bei der Definition des Musters können die Sonderzeichen der bash zur Dateinamengenerierung verwendet werden. Zusätzlich  
+
*Bei der ersten gefundenen Übereinstimmung terminiert der case-Block.  
kann ''|'' für eine logische OR-Verknüpfung benutzt werden.
+
*Bei der Definition des Musters können die Sonderzeichen der bash zur Dateinamengenerierung verwendet werden.
 
+
*Zusätzlich kann ''|'' für eine logische OR-Verknüpfung benutzt werden.
 +
==Beispiel==
 
*cat case1
 
*cat case1
 
<syntaxhighlight>
 
<syntaxhighlight>
Zeile 34: Zeile 35:
 
*./case1 kllkjl
 
*./case1 kllkjl
 
  kein bock auf musik
 
  kein bock auf musik
 +
 +
=Start Script=
 +
<syntaxhighlight lang=bash>
 +
#!/bin/bash
 +
case $1 in
 +
start)
 +
  echo start iperf3
 +
  iperf3 -s -D --logfile /tmp/iperf3.log
 +
;;
 +
stop)
 +
  echo stop iperf3
 +
  pkill -x iperf3
 +
;;
 +
status)
 +
  echo status iperf3
 +
if pgrep -x iperf3 > /dev/null
 +
  then
 +
    P=$(ss  -lntp | grep iperf3 | tr -s " " | cut -f 4 -d " " | cut -d : -f 2)
 +
    echo iperf3 is running on Port: $P
 +
  else
 +
    echo iperf3 stopped
 +
fi
 +
;;
 +
restart)
 +
  $0 stop && $0 start
 +
;;
 +
*)
 +
  echo "USAGE: $0 start|stop|status|restart"
 +
;;
 +
esac
 +
 +
</syntaxhighlight>
 +
 +
= Aufgaben =
 +
*[[Aufgaben Bash case]]

Aktuelle Version vom 26. November 2025, 09:03 Uhr

Was ist das?

  • Der case-Block dient der Durchführung eines Stringvergleiches.
  • Er wird sequentiell von oben nach unten abgearbeitet.
  • Bei Übereinstimmungen mit einem definierten Muster wird der darauf folgende Befehl ausgeführt (bzw. die darauf folgende Befehlsliste).
  • Bei der ersten gefundenen Übereinstimmung terminiert der case-Block.
  • Bei der Definition des Musters können die Sonderzeichen der bash zur Dateinamengenerierung verwendet werden.
  • Zusätzlich kann | für eine logische OR-Verknüpfung benutzt werden.

Beispiel

  • cat case1
#!/bin/bash
case $1 in
  rock|rocknroll)
    echo "stones sind gut"
  ;;
  schlager)
    echo "guildo ist ein gott"
  ;;
  volks)
    echo "was an der waffel?"
  ;;
  *)
    echo "kein bock auf musik"
  ;;
esac
  • ./case1 rock
stones sind gut
  • ./case1 rocknroll
stones sind gut
  • ./case1 schlager
guildo ist der meister 
  • ./case1 volks
was an der waffel?
  • ./case1 kllkjl
kein bock auf musik

Start Script

#!/bin/bash
case $1 in
start)
   echo start iperf3
   iperf3 -s -D --logfile /tmp/iperf3.log
;;
stop)
  echo stop iperf3
  pkill -x iperf3
;;
status)
  echo status iperf3
if pgrep -x iperf3 > /dev/null
  then
    P=$(ss  -lntp | grep iperf3 | tr -s " " | cut -f 4 -d " " | cut -d : -f 2)
    echo iperf3 is running on Port: $P
  else
    echo iperf3 stopped
fi
;;
restart)
  $0 stop && $0 start
;;
*)
  echo "USAGE: $0 start|stop|status|restart"
;;
esac

Aufgaben