[SHELL] Afficher une variable ??!!

Résolu
magicwill Messages postés 94 Statut Membre -  
magicwill Messages postés 94 Statut Membre -
Bonjour,

Voici mon code:

for i in 1 2 3 4 5 6 7 8
do
eval test$i=ttttt
done

for j in 1 2 3 4 5 6 7 8
do
echo $(test$j)
done


Le probleme est que je ne sais pas appeler ma variable... si je fais echo $test1 ou echo $test2...ca marche...mais pas ce code là..et je sais pas quelle syntaxe je dois mettre...

Merci pour votre aide.
Configuration: Windows XP
Internet Explorer 7.0

7 réponses

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    #!/bin/bash
    test1='a'
    test2='aEE'
    test3='azz'
    test4='azzz'
    test5='arrrr'
    test6='attt'
    test7='rzera'
    test8='azeyr'
    test9='afhfh'
    test10='asdf'
    for i in $(seq 10)
    do
     eval echo "test=\$test$i"
    done
    
    1
  2. magicwill Messages postés 94 Statut Membre 3
     
    Effectivement ta solution marche lami20j...
    Merci beaucoup pour ton aide...!

    J'ai voulu mettre ca dans un test...genre if [ `eval ...` = a ]..mais bon, ca marche pas...
    Au final, j'ai trouvé une solution bien barbare à l'écriture...mais bon...

    Voici ce que j'ai:

    if [ $(eval echo $`echo test$j`) -eq 2 ]
    


    Avec ça, ça marche...
    Si vous avez plus simple!! lol...

    Je met comme résolu!
    Merci à vous!
    1
  3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,
    for j in 1 2 3 4 5 6 7 8
    do
      echo $j
    done

    0
  4. magicwill Messages postés 94 Statut Membre 3
     
    Nan, ce n'est pas ca...

    Je veux afficher la valeur de test1, test2, test3, test4, test5, test6, test7, test8...
    En gros avoir:
    ttttt
    ttttt
    ttttt
    ttttt
    ttttt
    ttttt
    ttttt
    ttttt

    8 fois...Bon, dans mon cas, il ne s'agit pas de ttttt, mais bon, il faut deja que j'arrive a parcourir en affichant $test1, $test2, etc... et j'y arrive pas...

    Merci quand meme.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. JoloKossovar Messages postés 111 Statut Membre 33
     
    Salut ^^
    tu fais :

    for j in 1 2 3 4 5 6 7 8
    do
    echo ${test[$j]}
    done

    ou test est en fait un tableau ^^
    0
  7. magicwill Messages postés 94 Statut Membre 3
     
    Merci pour ta reponse...

    Mais je ne peux pas utiliser de tableaux, car il s'agit d'une valeur comme 12816 que j'ai...et je ne peux pas créer test[12816] = coucou car il y a une erreur subscript out of range...
    Je dois donc arriver a faire en sorte que test soient une variable et non un tableau...

    Ma question demeure...

    Merci quand meme.
    0
  8. JoloKossovar Messages postés 111 Statut Membre 33
     
    Ben tu ne dois pas avoir de out of range normalement tu dois surement depasser l index de ton tableau car il n y a pas de raison ... 13000 c pas grd chose pour un tableau a priori...

    De toute facon, il n'y a pas de liste, donc le tableau est ton seul ami pour ce que tu veux faire.
    0