[bash] arguments et test introuvable

Bonjour,

Je récupère juste une lettre comme argument, permettant ainsi de modifier le fonctionnement d’un script.
Je fais ainsi :

if test $# -gt 0 then while getopts outan opt do case $opt in o) input=$OPTARG remove=0 ;; u) only=1 ;; t) only=2 ;; a) only=3 ;; n) update=1 ;; esac done fi

Il n’y a aucune erreur d’exécution, ou plutôt, il n’y a aucune erreur sur la sortie, mais le case ne fonctionne pas : les instructions ne sont pas exécutée.
Or, j’ai beau faire des recherches, il ne me semble pas qu’il soit mal écrit…
??

Edit :

J’ai résolu en faisant ainsi :

if test $# -gt 0 then case $1 in o) input=$2 remove=0;; u) only=1;; t) only=2;; a) only=3;; n) update=1;; esac fi

bête comme mes pieds…