Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications
Applications Questions sur l'utilisation d'applications, du shell, et des interfaces graphiques (KDE, Gnome, XFCE... )
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/08/2007, 12h13   #1
Invité de passage
 
Inscription : août 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 1
Points : 0
Points : 0
Par défaut [ksh] Problème d'utilisation avec getopts

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 ...
1Breton est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h27.


 
 
 
 
Partenaires

Hébergement Web