Bash Der case-Block: Unterschied zwischen den Versionen
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…“) |
|||
| (5 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 iperf | ||
| + | iperf -s -D > /tmp/iperf.log | ||
| + | ;; | ||
| + | stop) | ||
| + | echo stop iperf | ||
| + | pkill -x iperf | ||
| + | ;; | ||
| + | status) | ||
| + | echo status iperf | ||
| + | if pgrep -x iperf > /dev/null | ||
| + | then | ||
| + | P=$(ss -lntp | grep iperf | tr -s " " | cut -f 4 -d " " | cut -d : -f 2) | ||
| + | echo iperf is running on Port: $P | ||
| + | else | ||
| + | echo iperf stopped | ||
| + | fi | ||
| + | ;; | ||
| + | restart) | ||
| + | $0 stop && $0 start | ||
| + | ;; | ||
| + | esac | ||
| + | </syntaxhighlight> | ||
| + | = Aufgaben = | ||
| + | *[[Aufgaben Bash case]] | ||
Aktuelle Version vom 1. Juni 2023, 19:30 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 iperf
iperf -s -D > /tmp/iperf.log
;;
stop)
echo stop iperf
pkill -x iperf
;;
status)
echo status iperf
if pgrep -x iperf > /dev/null
then
P=$(ss -lntp | grep iperf | tr -s " " | cut -f 4 -d " " | cut -d : -f 2)
echo iperf is running on Port: $P
else
echo iperf stopped
fi
;;
restart)
$0 stop && $0 start
;;
esac