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 :

Prendre les valeur de tous les argument


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 11
    Par défaut Prendre les valeur de tous les argument
    Bonjour

    Je souhaite récupérer toutes les valeurs des arguments passés en ligne de commande et leur fair eun traitement un à un (dans une boucle for par exemple)

    Du style for (i=1;i<=$#;i++)
    Do
    echo (arg[1])

    Done

    MErci

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 752
    Par défaut $@ sous BASH
    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for zot in $@; do 
        echo "zot= $zot"
    done
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 30
    Par défaut
    Il faut mettre des guillemets autour du $@ pour protéger les espaces éventuels contenu dans les arguments
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for arg in "$@"
    do
       echo "arg='$arg'"
    done
    Un exemple pour expliquer cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    set -- "arg1" "a r  g   2"
    for arg in $@; do  echo "$arg"; done
    # la on affiche 5 lignes
     
    set -- "arg1" "a r  g   2"
    for arg in "$@"; do  echo "$arg"; done
    # la on affiche deux lignes comme il faut

Discussions similaires

  1. [Batch] Connexion SFTP + download de tous les fichiers ET tous les répertoires
    Par gazza dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 06/03/2014, 13h45
  2. lister tous les membres de tous les groupes AD
    Par fbb53 dans le forum VBScript
    Réponses: 1
    Dernier message: 03/10/2011, 11h24
  3. Réponses: 15
    Dernier message: 27/09/2010, 22h29
  4. Réponses: 9
    Dernier message: 16/10/2006, 16h35
  5. Réponses: 1
    Dernier message: 19/08/2006, 10h27

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