Sto cercando la sintassi corretta dell'istruzione switch con casi fallthrough in Bash (idealmente senza distinzione tra maiuscole e minuscole). In PHP lo programmerei come:
switch($c) {
case 1:
do_this();
break;
case 2:
case 3:
do_what_you_are_supposed_to_do();
break;
default:
do_nothing();
}
Voglio lo stesso in Bash:
case "$C" in
"1")
do_this()
;;
"2")
"3")
do_what_you_are_supposed_to_do()
;;
*)
do_nothing();
;;
esac
Questo in qualche modo non funziona: la funzione do_what_you_are_supposed_to_do()
dovrebbe essere attivata quando $ C è 2 O 3.
do_nothing()
deve essere una dichiarazione SKIP? Usa :
.
function fname { echo "Inside fname"; return 0; }
ofname() { echo "inside fname"; return 0; }
ponendo parentesi su una chiamata di funzione può sembrare che sia una definizione di funzione. Le funzioni dovrebbero essere chiamati come qualsiasi altro programma a riga di comando, comemv
,cp
,rsync
,ls
,cd
, ecc ... In questo caso chiamiamo fname in questo modo:fname $ARGS
.