[SHELL] Afficher une variable ??!!

Résolu/Fermé
magicwill Messages postés 93 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 10 juillet 2008 - 6 août 2007 à 15:35
magicwill Messages postés 93 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 10 juillet 2008 - 8 août 2007 à 10:23
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.
A voir également:

7 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
6 août 2007 à 18:36
#!/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
magicwill Messages postés 93 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 10 juillet 2008 3
8 août 2007 à 10:23
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
6 août 2007 à 15:40
Salut,
for j in 1 2 3 4 5 6 7 8
do
  echo $j
done

0
magicwill Messages postés 93 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 10 juillet 2008 3
6 août 2007 à 15:43
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JoloKossovar Messages postés 111 Date d'inscription mercredi 1 août 2007 Statut Membre Dernière intervention 5 septembre 2007 33
6 août 2007 à 16:09
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
magicwill Messages postés 93 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 10 juillet 2008 3
6 août 2007 à 16:40
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
JoloKossovar Messages postés 111 Date d'inscription mercredi 1 août 2007 Statut Membre Dernière intervention 5 septembre 2007 33
6 août 2007 à 16:52
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