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 :

Une option en parametre de scripts...


Sujet :

Linux

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 14
    Points : 8
    Points
    8
    Par défaut Une option en parametre de scripts...
    Bonjour,

    je ne connais pas grand choses aux scripts et compagnie... mais voilà j'aimerais que l'éxécution suivante fonctionne :

    ./mon_script.sh -option truc

    Or ce n'est pas le cas, car j'obtiens en réponse :

    warning: failed to load external entity "-option"
    Options library initialisation error

    Savez vous comment je puisse faire pour que mon paramètre de script s'apparente plus à une utilisation d'option? en gros, comment faire pour qu'il accepte le "-blablabla" ?

    merci beaucoup d'avance
    il y a des jours où j'aimerais etre vous pour pouvoir m'aimer sans que cela ne passe pour du narcissisme...

  2. #2
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Voici un petit exemple, en espérant t'aider :
    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
     
    if [ $# = 1 ]
    then
             if [ "$1" = -v ]
            then
            echo "
    mirror v1.2.0
    copyright 2002
    Auteurs : Pikachu
    Pour contact :
    pikachu@pokemon.pk
    "
            exit 0
            fi
    fi
    @ ++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  3. #3
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 149
    Points : 28 116
    Points
    28 116
    Par défaut
    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
     
    # script csh
    while ( $#argv > 0 )   # tant que tu as des options
     
     if ( "$1" == "-n" ) then  # si cette option est "-n"
         shift        # la depiler (l'enlever de la liste)
    # traitement de l'option "-n"
     else if ( "$1" == "-b" ) then # sinon, si cette option est "-b"
        shift
    set num = $1   # on met "num" a l'argument qui suit l'option "-b"
     else 
         goto usage
    endif   # il manque peut etre un endif ici, je sais plus
    shift
    end  # fin du while
     
    usage:
    echo "programme [-n | -b #]"
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    merchi beaucoup!
    il y a des jours où j'aimerais etre vous pour pouvoir m'aimer sans que cela ne passe pour du narcissisme...

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    il y a beaucoup plus puissant et simple : utiliser la commande shell
    getopt, ceci permet de gérer tout les cas de figure "classique" :
    -a -b -c ou -ab -c ou -abc ... comme une commande standart UNIX
    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
    21
    22
    23
    24
    25
     
    # parse command line into arguments
    set -- `getopt a:bc $*`
    # check result of parsing
    if [ $? != 0 ]
    then
            exit 1
    fi
     
    while [ $1 != -- ]
    do
            case $1 in
            -a)     # set up the -a flag
                    AFLG=1
                    AARG=$2
                    shift;;
     
            -b)     # set up the -b flag
                    BFLG=1;;
     
            -c)     # set up the -c flag
                    CFLG=1;;
            esac
            shift   # next flag
    done
    Marc
    Slackware for ever ......
    BASH - KSH ( http://marcg.developpez.com/ksh/ )

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

Discussions similaires

  1. changer une option dans un makefile avec un script bash
    Par dedey63 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 26/07/2012, 13h56
  2. Script ne fonctionne plus quand je change une option
    Par beegees dans le forum jQuery
    Réponses: 2
    Dernier message: 05/02/2011, 10h49
  3. Réponses: 3
    Dernier message: 09/11/2009, 12h42
  4. Réponses: 2
    Dernier message: 02/07/2007, 14h42
  5. Passer une séquence en parametre
    Par djousss dans le forum CORBA
    Réponses: 2
    Dernier message: 02/12/2003, 22h39

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