Controllo valori ammessi di una variabile

Ciao a Tutti.
Ogni tanto mi perdo in banali problemi durante la creazione di piccoli script bash, e mi ritrovo qui a chiedervi aiuto.

Supponiamo che ho una variabile che deve contenere uno dei seguenti valori: 1, 2, 3 o 4.
Per verificare se la variabile ha un valore diverso da questi (cosa che non deve avvenire) uso un ciclo di while:

while  "$VAR" -ne 1 && "$VAR" -ne 2 && "$VAR" -ne 3 && "$VAR" -ne 4 ]] ; do
   echo -e "\n\nAttenzione: valore non consentito\n\n"
   exit 1
done

Ma… se i valori consentiti anzichè essere soltanto 4 fossero 30, sarebbe veramente “brutto” il mio ciclo di while. Verrebbe lunghissimo. C’è una soluzione più “elegante”?
Ho pensato di innestare il ciclo di while in un ciclo di for che tenga in lista tutti i possibili valori, ma mi sono reso conto che non può funzionare.

se lo script deve comportarsi in maniera diversa a seconda del valore della variabile è indicato l’uso di

case

vedi http://tldp.org/LDP/abs/html/testbranch.html degli ottimi esempi.
altrimenti un http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-6.html potrebbe bastare.

Si, virus, in effetti mi è stato più utile “case”, perché come hai scritto tu, ad ogni valore corrisponde un diverso comportamento.

Grazie.

bene.
il codice così è più leggibile e pulito.

[quote=virus]
se lo script deve comportarsi in maniera diversa a seconda del valore della variabile è indicato l’uso di

case

vedi http://tldp.org/LDP/abs/html/testbranch.html degli ottimi esempi.
altrimenti un http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-6.html potrebbe bastare.[/quote]

Stavo proprio cercando una cosa del genere.
Grazie il case ha proprio fatto al caso mio!