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 éprouvé
    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
    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 ?

  2. #2
    Membre émérite 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
    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

  3. #3
    Membre éprouvé
    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
    Par défaut
    c'est un petit peu neuf pour moi, il faut que je m'habitue à utilsé cela

    mais merci du tuyau

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