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 :

Utilisation de getops


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1
    Par défaut Utilisation de getops
    Bonjour !

    J'ai actuellement un problème au niveau de l'utilisation de Getopts. Je dois écrire un commande comme ceci : arg.sh [-s sujet] fichier destinataire [destinataire 1,destinataire2,...]
    En gros cette commande va écrire dans fichier un sujet (argument passer à l'option -s ainsi que les destinataire renseigner. Donc je suis partit sur une fonction de base de getopts :

    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #!/bin/sh
     
    while getopts "lqrs:v" OPTNAME
    do
    case $OPTNAME in
    l) echo "Option $OPTNAME : Liste" ;;
    q) echo "Option $OPTNAME : Quiet" ;;
    r) echo "Option $OPTNAME : Delete" ;;
    s) echo "Option $OPTNAME : Subject = $OPTARG" ;;
    v) echo "Option $OPTNAME : Verbrose" ;;
    *) echo "Option $OPTNAME inconnue" ;;
    esac
    done

    Mais je n'arrive pas à compléter ce bout de code pour pouvoir prendre mes arguments en compte de plus je doit aussi gérer le fait que mes options peuvent être lu dans le désordre et je ne suis pas sur que getopts puisse le faire ?

    Merci d'avance pour vos réponse,

    Thibault

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    L'ordre des options n'est pas important, à l'inverse de celui des paramètres.
    A chaque lecture d'une option de la ligne de commandes ou d'un argument, getopts incrémente la variable OPTIND.
    Il faut donc demander à décaler les paramètres de la ligne de commande en fonction de ce compteur après la boucle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    shift $(( OPTIND - 1 ))
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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