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 :

afficher les paramètres d'un script shell avec une boucle for


Sujet :

Shell et commandes GNU

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 29
    Points : 22
    Points
    22
    Par défaut afficher les paramètres d'un script shell avec une boucle for
    Bonjour,

    Je veux afficher les paramètres d'un script shell en plus le nom du script avec une boucle for:

    Voilà le script shell que j'ai créer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #!/bin/sh
     
    for i in $(seq 0 $#)
    do
    echo $i
    done
    Pour tester le script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >./test.sh par1 par2 par3
    le résultat que je veux moi c'est:
    ./test.sh
    par1
    par2
    par3

    alors que l'affichage est le suivant:

    0
    1
    2
    3

    Merci de votre aide.

  2. #2
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/bin/sh
    
    for i in $@
    do
    echo $i
    done
    $ man woman
    Il n'y a pas de page de manuel pour woman.

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Merci beaucoup pour votre réponse.

    Mais je veux que le résultat soit sous la forme suivante

    ./test.sh
    par1
    par2
    par3

    tous celà est dans la boucle for.

  4. #4
    Membre averti Avatar de FRUiT
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2011
    Messages : 83
    Points : 337
    Points
    337
    Par défaut
    Sinon (seulement en bash) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/bin/bash
     
    for i in $(seq 0 $#)
    do
    echo ${!i}
    done
    Mais bon la solution de zipe31 est la mieux.
    Neon Suite by FRUiT (kde4.6) http://tinyurl.com/yzm7cee
    "Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
    clean

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Ca marche aussi pour le shell, c'est normal non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #!/bin/sh
     
    for i in $(seq 0 $#)
    do
    echo ${!i}
    done
    >./test.sh par1 par2 par3
    ./test.sh
    par1
    par2
    par3

    Juste un éclaircissement à quoi sert le point d'exclamation ici ${!i} ?

    Merci

  6. #6
    Membre averti Avatar de FRUiT
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2011
    Messages : 83
    Points : 337
    Points
    337
    Par défaut
    En gros, !i va se développer en la valeur de la variable i.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #!/bin/bash
    var="variable"
    variable="dynamique"
    echo "Ma $var est une ${var} ${!var}"
    // Resultat : Ma variable est une variable dynamique
    Source : http://www.placeoweb.com/dotclear/in...it-pas-oublier
    Neon Suite by FRUiT (kde4.6) http://tinyurl.com/yzm7cee
    "Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
    clean

  7. #7
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Merci beaucoup FRUiT

  8. #8
    Membre averti Avatar de FRUiT
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2011
    Messages : 83
    Points : 337
    Points
    337
    Par défaut
    De rian
    Neon Suite by FRUiT (kde4.6) http://tinyurl.com/yzm7cee
    "Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
    clean

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

Discussions similaires

  1. Script shell avec une requête sql
    Par smtp2014 dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 13/01/2014, 17h52
  2. Réponses: 1
    Dernier message: 14/08/2011, 04h24
  3. Problème avec une boucle for
    Par cisse18 dans le forum Général JavaScript
    Réponses: 20
    Dernier message: 29/03/2006, 16h50
  4. Incrémentation dynamique d'un textbox avec une boucle for
    Par Etanne dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/03/2006, 15h17
  5. : remplir des zones de texte avec une boucle For
    Par Haro_GSD dans le forum Access
    Réponses: 3
    Dernier message: 20/09/2005, 21h23

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