Hello !

J'ai un p'tit problème avec l'utilisation de la fonction getopts ...

En gros, ça se passe comme ça:

1/ Dans le script principal, il y a entre autres :

(...)
FPATH="./scripts/"
typeset -fu Fonction1
typeset -fu Fonction2
(..)
# Une première boucle sur les arguments
while getopts a:b:c: opt; do case (...) esac; done
(...)
Fonction1 -d <Arg1> -e <Arg2> -f <Arg3>
(...)

2/ Dans le script Fonction1

OPTIND=1
# Une autre boucle sur les arguments
while getopts d:e:f: opt; do case (...) esac; done
(...)
Fonction2 -g <Arg1> -h <Arg2> -i <Arg3>

3/ Dans le script Fonction2

OPTIND=1
# Une autre boucle sur les arguments
while getopts g:h:i: opt; do case (...) esac; done
(...)

> Et c'est là qu'apparait le problème ... les identifiants (a,b,c, ...) ne sont pas forcément les mêmes, l'index OPTIND est bien remis à 1 avant chaque boucle sur getopts ...

Mais dans la deuxième fonction, j'ai systématiquement des erreurs du style :Sh Unknown option -d, alors que je n'utilise pas le -d.

Si j'essaie de faire passer le premier argument, par exemple, avec l'option -d en modifiant tout ce qu'il faut pour ça, je me rends compte en l'affichant que l'argument pris en compte est celui de l'appel d'au-dessus (ie celui donné lors de l'appel de Fonction1, pas de Fonction2).

Qu'est-ce qui se passe ? On dirait que getopts ne prend pas en compte le bon appel ...