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

Shell et commandes GNU Discussion :

gestion chaine d'argument et drapeau


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 162
    Par défaut gestion chaine d'argument et drapeau
    J'ai un script qui prend plusieurs arguments dont certains optionnels :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ./script 1 2 3 4 -a 5 6
    ici l'argument optionnel est celui qui suit -a

    Donc j'aurais besoin de faire un test pour voir si dans la totalité des arguments il y a -a et alors récupérer la valeur qu'il y a dans l'argument suivant ici $6.

    Merci

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    Code monScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    monTest() { [ "$1" = "-a" ] && monParam="$2" || { shift; monTest $@; }; }
    monTest $@
    echo $monParam
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    monScript 1 2 3 4 -a 5 6
    5
    ...
    ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 162
    Par défaut
    Alors après recherche quand on utilise le shift on déplace la place des arguments et c'est pas ce que je veux
    en fait j'ai pris un exemple simple ce dont j'ai besoin c'est de récupérer la valeur des argument pour modifier par la suite un fichier mais ces paramètres sont parfois correct dans leur valeur par défaut.

    Je m'explique un peu plus,
    Je lance des calculs sur de calculateurs et je peux demander un nombre de processeurs variable un temps machine variable et une mémoire vive variable. je les modifie suivant mes besoin

    donc une commande complète (où tout est modifié) c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ./script -p 2 -t 20h -m 4go fichier_input
    Mais bien évidement si le temps par défaut me conviens la commande sera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ./script -p 2 -m 4go fichier_input
    Donc ce que je veux faire c'est pouvoir si j'en ai besoin récupérer la valeur dans le dernier cas de $2 et $4 pour pouvoir modifier le script de soumission.

    Merci

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    alors, getopts
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    Elle est bizarre ta syntaxe... Si on appèle "./script 1 2 3 4 -a 5 6", comment sais-tu si le 5 est l'argument du -a, ou si on a un -a sans argument suivi de deux options 5 et 6 ? Ca m'a pas l'air super bien conçu tout ça, et en tout cas pas très consistent avec les pratiques standards (imposées par getopt() en particulier).

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 162
    Par défaut
    Oui en fait c'est que je voulais une réponse générale et j'avoue que l'exemple donné était pas terrible.
    getopt c'est exactement ce que je voulais.
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion chaine de certification /CRL
    Par loicounet dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 28/10/2011, 17h22
  2. Gestion efficasse des arguments
    Par mamax29 dans le forum Langage
    Réponses: 11
    Dernier message: 17/05/2010, 11h52
  3. Gestion chaine caractère
    Par fatenatwork dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 17/07/2008, 13h10
  4. Réponses: 6
    Dernier message: 01/06/2008, 04h56
  5. gestion propre des arguments du main
    Par jobherzt dans le forum C++
    Réponses: 1
    Dernier message: 30/08/2006, 18h17

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