[bash] Motifs de branchement de case

Bonjour

Choisir une option numérique parmi 10 est facile

case $var in
   .....
   [0-9]) ..... ;;
esac

Mais comment faire quand le nombre d’options est supérieur à 10 ?
Quel motif utiliser ?

Il y a un bon moment que je cherche mais je n’ai pas trouvé.
Bien sur avec if then elif … ça passe; mais je souhaiterais le faire avec case

(man bash, section « Pathname Expansion »)

En bash, tu peux donc faire, par exemple :

shopt -s extglob

case $var in
    @(1|2|3|4|5|6|7|8|9|10|11|12)) ... ;; # de 1 à 12
    @(13|14|15|16|17|18|19)) ... ;; # de 13 à 19
    [2-3][0-9]) ... ;; # de 20 à 39
    @(40|41|42)) ... ;; # de 40 à 42
    *) ... ;;
esac

Mais ça reste un contournement, case cherche des expressions littérales. Pour faire des comparaisons numériques, l’utilisation de if reste plus appropriée.
Sauf peut-être avec d’autres shells que bash, mais j’en doute…

merci pour ta réponse ; elle est très claire.
Je resterai donc sur if then …