[BASH]variable qui utilise une autre variable

Fermé
Sébastien - 13 août 2010 à 17:22
 XoXo - 15 août 2010 à 01:37
Bonjour,

Voici ce que j'essaye d'executer :

while [$CONFIGETH$i != "None" ]
do
.
.
.
done
Sachant que je veux en faite interpréter le contenu de la variable $CONFIGETH0 (qui contient bien une valeur).$i est une variable qui s'incremente dans mon while.
J'ai essayé de plusieurs manieres
comme $CONFIGETH${i}
${CONFIGETH}${i}
$(CONFIGETH$i)
etc
Je sais pas si j' ai était clair. N'hésiter pas à me poser des questions.
Merci pour votre aide
Sébastien

3 réponses

dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 620
14 août 2010 à 09:07
hello
$ CONFIGETH0=aaaaaaaaaaaa
$ CONFIGETH1=bbbbbbbbbbbb
$ i=0
$ m=CONFIGETH${i} ; eval echo \$${m}
aaaaaaaaaaaa
$ i=1
$ m=CONFIGETH${i} ; eval echo \$${m}
bbbbbbbbbbbb
$ 
2
jivef Messages postés 927 Date d'inscription mercredi 11 août 2004 Statut Membre Dernière intervention 12 novembre 2020 306
Modifié par jivef le 14/08/2010 à 03:22
Bonjour,
Je crois avoir compris la question.

Dans ta boucle, tu veux que les deux chaines de caractères soient collées et n'en forment qu'une, c'est bien ça ?

En fait, je crois que je comprend, tu as créé une variable CONFIGETH, pour qu'elle corresponde à une carte réseau, il faut lui ajouter 0 puis 1 puis 2 etc... autant de carte réseau que tu as.
Le numéro de la carte réseau se trouvant piégé dans la variable $i...

Autre point, n'oublie pas les guillemets entourant la variable

Donc, dans ce cas, la syntaxe n'a pas l'air mal, il faut juste que tu fasses précéder ta boucle par une définition de i.
A savoir :
i=0
Ainsi, la boucle commencera à $CONFIGETH0.
N'oublie pas d'incrémenter avant le done :
let i=i+1


Je pense que c'est ce que tu veux faire...

#Definition variable "i"
i=0
while [ "$CONFIGETH$i" != "None" ]
do
    echo " le contenu de la variable est $CONFIGETH$i "
    Inscrit les commandes que tu veux rentrer...
    let i=i+1
done


Bien cordialement.
Jonas.



Une idée reçue est souvent une idée morte.
0
Merci pour vos réponse.

Dubcek répond a ma question c'est exactement ce que je cherche à faire.

Merci a toi Jonas pour d'être également penché sur mon problème. Ma variable CONFIGETH0 contient déjà une valeur, ainsi que CONFIGETH1, etc. J'essaye justement d'utiliser la valeur de cette variable mais en utilisant une variable i pour le numéro.
0