IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

$OPTARG de getopts ne semble rien me renvoyer (sous ksh)


Sujet :

Linux

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2004
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 26
    Points : 17
    Points
    17
    Par défaut $OPTARG de getopts ne semble rien me renvoyer (sous ksh)
    Bonjour !

    J'essaie désespérément de passer un paramètre et son argument à mon script.
    La partie intéressante est celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    while getopts ":c(checker):s(site):m(machine):" option
    do
    	case "$option" in
    	c)
    		CHECKER="$OPTARG"
    		;;
    	s)
    		SITE="$OPTARG"
    		;;
    	m)
    		MACHINE="$OPTARG"
    		;;
    	[?])	
    		echo option "$option"  invalide
    		;;
    	esac
    done
     
    echo $#
    echo $CHECKER
    Donc, logiquement, en passant l'option [-c argument], ma variable $CHECKER ne devrait pas être vide.
    Or, l'appel au script par : ./MyScript.sh -c 'Monitor soft'
    me donne (avec un set -x) :
    + getopts :c(checker):s(site):m(machine): option
    + CHECKER=
    + getopts :c(checker):s(site):m(machine): option
    + echo 2
    2
    + echo
    Donc : il me trouve bien mon bon argument, mais $OPTARG est vide et n'initialise pas la variable CHECKER !
    Qu'est-ce que je fais de si mal, à votre avis ?

    PS : question subsidiaire : d'après le man de getopt, ma syntaxe devrait permetttre d'utilier l'option longue --checker, cependant, si je teste un ./MyScript.sh --checker 'Monitor soft', j'obtiens un maigre :
    + getopts :c(checker):s(site):m(machine): option
    + echo option ? invalide
    option ? invalide
    + getopts :c(checker):s(site):m(machine): option
    + echo 2
    -> Je ne sais plus lire ?

  2. #2
    Membre à l'essai
    Inscrit en
    Mars 2004
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Bon, je viens d'avancer sur le sujet : le problème est bien lié à l'utilisation des options longues, si je fais simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while getopts ":c:s:m:" option
    Mes $OPTARG sont correctement renseignés.
    Reste à voir pourquoi les options longues ne sont pas pris en charge par mon ksh...

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Avril 2009
    Messages : 26
    Points : 31
    Points
    31
    Par défaut
    Je me suis aussi penché sur getops avec options longues avec ou sans argument, cela nous mène à avoir quelques nuits blanches, mais un moyen existe pour palier aux options longues qu'ils soient avec ou sans arguments.
    J'ai déjà posté 2 commentaires sur getopts dans les "trucs et astuces", le troisième sera consacré aux options longues avec arguments.

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 985
    Points
    30 985
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par syjis Voir le message
    Je me suis aussi penché sur getops avec options longues avec ou sans argument, cela nous mène à avoir quelques nuits blanches, mais un moyen existe pour palier aux options longues qu'ils soient avec ou sans arguments.
    J'ai déjà posté 2 commentaires sur getopts dans les "trucs et astuces", le troisième sera consacré aux options longues avec arguments.
    C'est gentil mais bon, remonter un topic de 2 ans ...
    T'aurais pu aussi nous donner le lien de tes commentaires
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. requête ne renvoyant rien
    Par sasy22 dans le forum Ruby on Rails
    Réponses: 2
    Dernier message: 31/05/2008, 16h41
  2. plus rien ne compile sous visual studio 2005
    Par pascale_92 dans le forum Visual C++
    Réponses: 2
    Dernier message: 02/11/2007, 09h36
  3. Réponses: 3
    Dernier message: 13/06/2007, 14h57
  4. fonction sans argument ne renvoyant rien
    Par perdro dans le forum C
    Réponses: 3
    Dernier message: 25/11/2006, 22h16
  5. fonction que ne renvoye rien
    Par clampin dans le forum C
    Réponses: 6
    Dernier message: 06/07/2006, 13h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo