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 :

Récupérer :les arguments d'un script


Sujet :

Linux

  1. #1
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut Récupérer :les arguments d'un script
    Bonjour,

    Je fais aujourd'
    hui quelques petits scripts shell qui m'aide à l'automatisation de mes tâches.
    Pour l'instant ces scripts nécessite un certain ordre d'arguments. Par exemple, un script qui créer un exe va prendre comme argument 1 le nom de l'appli et comme argument 2 l'url de l'exe à créer.
    Je voudrais savoir comment on fait pour que cette ordre ne soit pas une contrainte, qu'on puisse intervertir les arguments. Idéalement, je voudrais proposer une écriture explicite pour l'appel à mon script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    script-creation-exe name="Mon appli" -url=/tmp/monappli/"
    Pourriez vous me dire comment faire ?
    http://aldorande.miniville.fr/ind
    Fedora 8, eclipse 3.3 sur x86_64
    --------------
    Colorer votre code php

  2. #2
    Membre éclairé Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Points : 652
    Points
    652
    Par défaut
    En shell, "getopts" sert à ce genre de choses

    Ci-dessous, l'exemple te permet de lancer ton script avec des paramètres non positionnels comme suit :

    nom_de_script -r nom_de_repertoire -p nom_de_programme
    ou
    nom_de_script -p nom_de_programme -r nom_de_repertoire

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    #!/bin/sh 
     
    ScriptName=$(basename $0)
    Syntaxe="+ syntaxe : $ScriptName -r nom_de_repertoire  -p nom_de_programme "
    Repertoire=""
    Programme=""
     
    while getopts ":r:p:h" OPTION 
    do
    	case $OPTION in
    		h) echo $Syntaxe
    		   exit 0
    		;;
    		r) Repertoire=$OPTARG
    		;;
    		p) Programme=$OPTARG
    		;;
    		:) echo "*** OPTION \"$OPTARG\" sans arg"
    		   echo $Syntaxe
    		;;
    		\?) echo "*** OPTION \"$OPTARG\" inconnue !!!"
    		    echo $Syntaxe
    		;;
    	esac
    done
     
    if [[ $Repertoire = "" ]] ; then
    	echo "*** nom de répertoire non saisi !!!"
    	echo $Syntaxe
    	exit 1
    fi
    if [[ $Programme = "" ]] ; then
    	echo "*** nom de Programme non saisi !!!"
    	echo $Syntaxe
    	exit 1
    fi
     
    if [[ ! -e $Repertoire || ! -d $Repertoire ]] ; then
    	echo "*** \"$Repertoire\" n'existe pas ou n'est pas un répertoire !!!"
    	echo $Syntaxe
    	exit 1
    fi
     
    if [[ ! -e ${Repertoire}/$Programme || ! -f ${Repertoire}/$Programme || ! -x ${Repertoire}/$Programme ]] ; then
    	echo "*** \"${Repertoire}/${Programme}\" n'existe pas ou n'est pas un fichier exécutable !!!"
    	echo $Syntaxe
    	exit 1
    fi
    Loi de Murphy:
    La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi.
    La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi.
    Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi.

  3. #3
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    c'est un petit peu neuf pour moi, il faut que je m'habitue à utilsé cela

    mais merci du tuyau
    http://aldorande.miniville.fr/ind
    Fedora 8, eclipse 3.3 sur x86_64
    --------------
    Colorer votre code php

Discussions similaires

  1. [RegEx] Récupérer les arguments d'une fonction
    Par brunoperel dans le forum Langage
    Réponses: 2
    Dernier message: 29/07/2008, 19h46
  2. Réponses: 5
    Dernier message: 02/07/2008, 14h10
  3. [ServerSocket][URL] Comment récupérer les arguments d'une URL?
    Par nramariavelo dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 20/06/2006, 14h46
  4. récupérer les arguments du programme
    Par akrobat dans le forum C++
    Réponses: 9
    Dernier message: 14/06/2006, 09h37
  5. récupérer les arguments de la ligne de commande
    Par gblanc dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 13/10/2005, 23h08

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