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 :

[for i;do;done] Explications


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 75
    Par défaut [for i;do;done] Explications
    Bonjour,

    J'espère que quelqu'un pourra m'aider car je ne comprends pas comment les lignes suivantes sont interprétées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    azerty@debian76:~# echo $i
     
    azerty@debian76:~# toto=chaine1
    azerty@debian76:~# set $toto
    azerty@debian76:~# echo $i
     
    azerty@debian76:~# for i; do echo $i;done
    chaine1
    azerty@debian76:~# echo $i
    chaine1
    Pourquoi est-ce que la boucle for affecte "chaine1" à $i ? Je pense qu'il doit y avoir une subtilité avec la commande set mais je n'arrive pas à expliquer ce comportement.

    J'en profite pour vous souhaiter un joyeux réveillon

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 660
    Par défaut
    Bonjour,

    set place la chaîne qui lui est passée en tant que paramètres positionnels du shell (dans "$@").
    for i do est équivalent à for i in "$@"; do.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 75
    Par défaut
    En effet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    azerty@debian76:~# toto=tata;titi=tutu;
    azerty@debian76:~# set $toto $titi
    azerty@debian76:~# echo $@
    tata tutu
    azerty@debian76:~# echo $1
    tata
    Ca me semble plus clair, je te remercie pour ta réponse.

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 660
    Par défaut
    attention, il faut bien mettre $@ entre guillemets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $ set 'toto tata' titi
    $ printf '%s\n' $@
    toto
    tata
    titi
    $ printf '%s\n' "$@"
    toto tata
    titi
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 75
    Par défaut
    Oui pour la boucle for ça sera mieux

    Merci pour ton aide !
    @++

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

Discussions similaires

  1. Nothing to be done for `Makefile'
    Par Analou dans le forum C
    Réponses: 5
    Dernier message: 14/06/2013, 13h45
  2. demande explication sur boucle "FOR"
    Par maori dans le forum Général Python
    Réponses: 4
    Dernier message: 02/01/2009, 17h37
  3. Explication de la boucle for(;;)
    Par Info_76 dans le forum C
    Réponses: 2
    Dernier message: 29/08/2008, 10h54
  4. [make] Nothing to be done for ...
    Par Zenol dans le forum Systèmes de compilation
    Réponses: 5
    Dernier message: 02/02/2006, 18h50
  5. Explication boucle "for"
    Par mactech dans le forum Langage
    Réponses: 7
    Dernier message: 13/12/2005, 15h38

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