Ich suche nach der richtigen Syntax der switch-Anweisung mit Fallthrough-Fällen in Bash (idealerweise ohne Berücksichtigung der Groß- und Kleinschreibung). In PHP würde ich es wie folgt programmieren:
switch($c) {
case 1:
do_this();
break;
case 2:
case 3:
do_what_you_are_supposed_to_do();
break;
default:
do_nothing();
}
Ich möchte dasselbe in Bash:
case "$C" in
"1")
do_this()
;;
"2")
"3")
do_what_you_are_supposed_to_do()
;;
*)
do_nothing();
;;
esac
Das funktioniert irgendwie nicht: Die Funktion do_what_you_are_supposed_to_do()
sollte ausgelöst werden, wenn $ C 2 ODER 3 ist.
do_nothing()
soll eine SKIP-Erklärung sein? Verwenden Sie :
.
function fname { echo "Inside fname"; return 0; }
oder einenfname() { echo "inside fname"; return 0; }
Parens für einen Funktionsaufruf verwenden, kann dies so aussehen, als wäre es eine Funktionsdefinition. Funktionen sind wie alle anderen Kommandozeilen - Programm wie genannt werdenmv
,cp
,rsync
,ls
,cd
, etc ... In diesem Fall sind wir fname gerne so nennen:fname $ARGS
.