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 :

Problème dans une boucle shell


Sujet :

Linux

  1. #1
    Membre habitué Avatar de Maillon
    Inscrit en
    Juin 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2007
    Messages : 136
    Points : 136
    Points
    136
    Par défaut Problème dans une boucle shell
    Bonjour,

    Voici mon code :
    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
     
    PF="RO SD"
    SW="1 2"
     
    for j in $PF
    do
        for k in $SW
        do
            for i in "toto"$PF
            do
                 echo $j.$k.$i
            done
        done
    done
    exit
    Il est extrêmement simple hein :-)
    Voici le résultat :
    RO.1.totoRO
    RO.1.SD
    SD.1.totoRO
    SD.1.SD

    Je comprends pas pourquoi j'ai pas ce résultat là :
    RO.1.totoRO
    RO.1.totoSD
    SD.1.totoRO
    SD.1.totoSD

    Quelqu'un aurait-il une idée ?

    Merci beaucoup.

    Cordialement,

  2. #2
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 89
    Points : 85
    Points
    85
    Par défaut
    Salut,
    J'ai pas une réponse complète à te donner, mais je peux te dire que c'est la chaîne "toto" qui fout le bor...

    Si tu l'enleve ça marche correctement :

    PF="RO SD"
    SW="1 2"


    for j in $PF
    do
    for k in $SW
    do
    for i in $PF
    do
    echo "$j.$k.$i"
    done
    done
    done

    exit 0;



    si ça peut t'aider....

  3. #3
    Membre habitué Avatar de Maillon
    Inscrit en
    Juin 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2007
    Messages : 136
    Points : 136
    Points
    136
    Par défaut
    Je sais que ça marche pas avec toto seulement j'ai besoin de bouclé aussi sur toto donc ça doit marcher mais je sais pas comment.

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 89
    Points : 85
    Points
    85
    Par défaut
    bon, j'ai peut-être une solution à ton problème (après je sais pas si ça répondra à tes besoins..)

    SW="1 2"
    PF[0]='RO'
    PF[1]='SD'

    for j in ${PF[*]}
    do
    for k in $SW
    do
    for i in toto${PF[0]} toto${PF[1]}
    do
    echo "$j.$k.$i"
    done
    done
    done
    exit 0;


    en fait le truc, c'est que si tu crée une variable comme ça :
    chaine=toto$PF
    ça concatene les deux donc ta variable aura pour valeur "totoRO SD"

    donc la solution que j'ai trouvé c'est de mettre Pf dans un tableau et de lister les solutions manuellement dans le for. Donc la ça marche, mais le truc c'est si ton PF contient pleins de types différents ça va être fastidieux...

    Enfin, bon, toujours est-il qu'avec le code que je te propose ça sort bien

    RO.1.totoRO
    RO.1.totoSD
    RO.2.totoRO
    RO.2.totoSD
    SD.1.totoRO
    SD.1.totoSD
    SD.2.totoRO
    SD.2.totoSD


    Voilà, bon courage

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 417
    Points : 376
    Points
    376
    Par défaut
    pourquoi faire compliqué :

    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
    #!/bin/bash
     
    PF="RO SD"
    SW="1 2"
     
    for j in $PF
    do
        for k in $SW
        do
            for i in $PF
            do
                 echo $j.$k.toto$i
            done
        done
    done
    exit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    RO.1.totoRO
    RO.1.totoSD
    RO.2.totoRO
    RO.2.totoSD
    SD.1.totoRO
    SD.1.totoSD
    SD.2.totoRO
    SD.2.totoSD

  6. #6
    Membre habitué Avatar de Maillon
    Inscrit en
    Juin 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2007
    Messages : 136
    Points : 136
    Points
    136
    Par défaut
    En fait c'est mieux si je fais quelque chose comme ça :
    for j in $PF
    do
    for k in $SW
    do
    for i in ${j}D110*U.FC$k
    do
    echo "$j.$k.$i"
    done
    done
    done
    exit

    En fait il fallait que je reprenne le nom des variable $j et $k dans ma dernière boucle.

    Merci de votre aide :-)

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 594
    Points : 19 473
    Points
    19 473
    Par défaut
    heu...
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    echo -e "\b"{RO,SD}.{1,2}.toto{RO,SD}"\n"

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

Discussions similaires

  1. [Embedded Function] Problème dans une boucle FOR-END
    Par roilait dans le forum Simulink
    Réponses: 6
    Dernier message: 19/04/2008, 14h55
  2. problème dans une boucle
    Par tozy88 dans le forum Langage
    Réponses: 6
    Dernier message: 11/03/2008, 15h05
  3. [BASH] Problème dans une boucle IF
    Par coincoin22 dans le forum Linux
    Réponses: 3
    Dernier message: 16/08/2007, 09h34
  4. [Débutant] Problème dans une boucle Matlab
    Par RaphTIM dans le forum MATLAB
    Réponses: 3
    Dernier message: 05/06/2007, 18h51
  5. Problème dans une boucle
    Par Pitou5464 dans le forum Access
    Réponses: 5
    Dernier message: 11/08/2006, 14h51

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