Occhio che la stringa di corrispondenza indicata nel case non supporta le espressioni regolari!!! Supporta al massimo * e ? e la 'or' |. Praticamente come per il match dei file nella shell. Inoltre (ed è questo che ti servirebbe), il case *) è il default se non viene scelto un altro case.Originariamente inviato da Manugal
Ciao a tutti!!![]()
Ho un problema con uno script che sto implementando che fa alcune operazioni matematiche. Come ultima condizione del case ho messo la seguente istruzione:
*[!/\*+-%mcdmedia]*) echo "Errore"
Cioè se l'argomento passato è diverso da / * + - % mcd o media allora stampa "Errore". Il problema è che quando lo vado a lanciare e faccio per esempio 5 * 3 mi da errore. Cosa ho sbagliato in questa RE? Forse ho le idee un po' confuse![]()
Quindi:
codice:case $arg in .... mcd) .... ;; media) .... ;; *) echo "Errore"; ;; esac