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 :

Initialiser un tableau avec des paramètres passés en argument


Sujet :

Linux

  1. #1
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 46
    Points : 34
    Points
    34
    Par défaut Initialiser un tableau avec des paramètres passés en argument
    Bonjour à tous,

    Je souhaiterai actuellement ajouter un paramètre de lancement pour mon shell

    monshell.sh -l param1 param2 paramx

    -l pour liste

    je souhaiterai que les paramètres param1, param2 et param3

    vienne initialiser un tableau liste dans mon shell

    liste = (param1 param2 param3)

    Merci

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 721
    Points : 31 044
    Points
    31 044
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Info_76 Voir le message
    Bonjour à tous,

    Je souhaiterai actuellement ajouter un paramètre de lancement pour mon shell

    monshell.sh -l param1 param2 paramx

    -l pour liste

    je souhaiterai que les paramètres param1, param2 et param3

    vienne initialiser un tableau liste dans mon shell

    liste = (param1 param2 param3)

    Merci
    Essaye
    Sinon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    i=0
    for arg in $*
    do
        liste[$i]=$arg
        i=$(expr $i + 1)
    done

  3. #3
    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
    Bien utile le « shift »

    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
     
     
    if [[ $# -lt 2 ]] ; then
        echo "*** $(basename $0) -l arg1 arg2 ..."
        exit 1
    fi
     
    if [[ $1 != "-l" ]] ; then
        echo "*** $(basename $0) -l arg1 arg2 ..."
        exit 1
    fi
     
    shift
     
    liste=($*)
     
    echo ${liste[0]}
    echo ${liste[*]}

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 721
    Points : 31 044
    Points
    31 044
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par BlaireauOne Voir le message
    Bien utile le « shift »

    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
     
     
    if [[ $# -lt 2 ]] ; then
        echo "*** $(basename $0) -l arg1 arg2 ..."
        exit 1
    fi
     
    if [[ $1 != "-l" ]] ; then
        echo "*** $(basename $0) -l arg1 arg2 ..."
        exit 1
    fi
     
    shift
     
    liste=($*)
     
    echo ${liste[0]}
    echo ${liste[*]}
    Ouaip. Avec juste "-l" à gérer ça marche encore mais s'il fallait gérer
    -l
    -a
    -l -a
    -la
    <pas d'option>
    ce serait moins évident sans utiliser getopt ou getopts...

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/02/2007, 13h42
  2. Réponses: 6
    Dernier message: 24/02/2005, 09h44
  3. [ADO/Access] Appel d’une requête avec des paramètres
    Par Taxenna dans le forum Bases de données
    Réponses: 1
    Dernier message: 07/12/2004, 14h58
  4. Erreur sur une fonction avec des paramètres
    Par Elois dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 05/05/2004, 21h00
  5. créer un noeuds avec des paramétres
    Par Toxine77 dans le forum XMLRAD
    Réponses: 5
    Dernier message: 21/01/2003, 16h11

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