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 :

[SHELL] Variable dans boucle for


Sujet :

Linux

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 34
    Points : 21
    Points
    21
    Par défaut [SHELL] Variable dans boucle for
    Bonjour,

    J'ai du mal à comprendre mon erreur...
    Je voudrai creer autant de variable que de nombre d'elements de ma boucle...

    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
     
    for i in 1 2 3 4 5 6 7 8
    do
     test$i=$i
     echo coucou $i
     peps=$i
    done
    echo "#################"
    echo $i
    echo variable $peps
    echo $test1
    echo $test2
    echo $test3
    echo $test4
    Voila le resultat quand j'execute mon script:
    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
    19
    20
    21
     
     
    testW.ksh[3]: test1=1:  not found
    coucou 1
    testW.ksh[3]: test2=2:  not found
    coucou 2
    testW.ksh[3]: test3=3:  not found
    coucou 3
    testW.ksh[3]: test4=4:  not found
    coucou 4
    testW.ksh[3]: test5=5:  not found
    coucou 5
    testW.ksh[3]: test6=6:  not found
    coucou 6
    testW.ksh[3]: test7=7:  not found
    coucou 7
    testW.ksh[3]: test8=8:  not found
    coucou 8
    #################
    8
    variable 8
    Je comrpends pas pourquoi il me laisse pas faire ce que je veux dans la boucle: créer plein de variable différente portant dans le nom $i...
    Pourriez-vous m'aider?

    Merci par avance.

  2. #2
    Membre éprouvé
    Avatar de f-k-z
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2006
    Messages : 403
    Points : 928
    Points
    928
    Par défaut
    Yop,
    rajoute eval
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    for i in 1 2 3 4 5 6 7 8
    do
    eval test$i=$i
     echo coucou $i
     peps=$i
    done
    echo "#################"
    echo $i
    echo variable $peps
    echo $test1
    echo $test2
    echo $test3
    echo $test4
    et on a:
    coucou 1
    coucou 2
    coucou 3
    coucou 4
    coucou 5
    coucou 6
    coucou 7
    coucou 8
    #################
    8
    variable 8
    1
    2
    3
    4
    GNU/Linux c'est une question de VI ou de MORE.
    http://www.goodbye-microsoft.com
    "Linux is user friendly, its just very selective of its friends*", m'enfou, je suis son pote :p

    Un post vous est utile ou est constructif, ayez le réflexe du +1 pour le contributeur ( C'est gratuit et ça donne l'impression d'être utile :p )
    Le tag et la ne sont pas fait que pour le décor, pensez-y !
    R.I.P. F-k-z 13/06/2006 - 12/10/2011
    *Linux est convivial, il est juste très sélectifs pour ses amis.

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 34
    Points : 21
    Points
    21
    Par défaut
    Arf!!

    Rien que pour un ptit eval!!!
    Pfff..

    Merci merci merci!!!

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 34
    Points : 21
    Points
    21
    Par défaut
    En fait j'ai un autre souci...

    Je veux créer une autre boucle for j, qui m'affiche toutes les valeurs (test1, test2, test3, test4...etc..)

    Je n'arrive pas a faire un echo de $test$j ...quelqu'un peut m'aider?

    Svp!

  5. #5
    Membre éprouvé
    Avatar de f-k-z
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2006
    Messages : 403
    Points : 928
    Points
    928
    Par défaut
    Yop
    ceci?
    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
     
    for i in 1 2 3 4 5 6 7 8
    do
    eval test$i=$i
     echo coucou $i
     echo $((test$i))
     peps=$i
    done
    echo "#################"
    echo $i
    echo variable $peps
    echo $test1
    echo $test2
    echo $test3
    echo $test4
    @++

    F-k-z
    GNU/Linux c'est une question de VI ou de MORE.
    http://www.goodbye-microsoft.com
    "Linux is user friendly, its just very selective of its friends*", m'enfou, je suis son pote :p

    Un post vous est utile ou est constructif, ayez le réflexe du +1 pour le contributeur ( C'est gratuit et ça donne l'impression d'être utile :p )
    Le tag et la ne sont pas fait que pour le décor, pensez-y !
    R.I.P. F-k-z 13/06/2006 - 12/10/2011
    *Linux est convivial, il est juste très sélectifs pour ses amis.

  6. #6
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 34
    Points : 21
    Points
    21
    Par défaut
    Alros voila...Effectivement, j'obtiens la liste jusqu'à 8...
    Mais pour etre sur que ca faisait ce que je voulais...
    j'ai essayais la chose suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    for i in 1 2 3 4 5 6 7 8
    do
     eval test$i="cou"
    done
    echo "#################"
    for j in 1 2 3 4 5 6 7 8
    do
    echo $((test$j))
    done
    et la...ca fait bad number...

    Merci pour vos reponses en tout cas!

    ++

  7. #7
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Un petit ne fait pas l'affaire ?

Discussions similaires

  1. [XL-2013] Valeur de variable nulle dans boucle For
    Par FloPomPom dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/09/2014, 12h14
  2. Optimisation boucles - mise en cache variable dans un for?
    Par erox44 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 27/05/2010, 14h09
  3. affecter variable dans boucle FOR batch
    Par efferalgan dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 25/10/2007, 14h25
  4. Réponses: 37
    Dernier message: 02/03/2006, 01h58

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