Tout d'abord merci pour vos reponse qui m'ont beaucoup aidée.
Et si au lieu d'affichier la variable dont on connais que le nom ou veux modifier sa valeur :
du genre :
#!/bin/bash
foo="foo"
[ true ] && var="foo"
#echo "\$$var"
#eval echo "\$$var"
#echo ${!var}
#si je veux mettre la valeur "bar" dans foo
$var="bar"
eval echo "\$$var"
Bon je sait ça marche pas, mais j'ai tester pas mal de truc et je trouve pas.
Bash'
# pas si compliqué ....
Posté par Frédéric Heulin . Évalué à 3.
ce qui renvoie :
Le truc consiste à faire la subsitution du nom de variable par son contenu avant d'évaluer l'expression
ps : s/compliquer/compliqué/ entre autres ... ;-)
pps : ceci n'est pas un appel à boire ... quoique :-)
[^] # Re: pas si compliqué ....
Posté par Calim' Héros (site web personnel) . Évalué à 2.
more beer
[^] # Re: pas si compliqué ....
Posté par Bashful . Évalué à 1.
Mon script doit par exemple chercher les paths de certaines extentions que je connais pas à l'avance et les stocker un tableau pour chaques :
ex : un tableau nommé 'tar' pour toutes les extentions .tar, etc ...
Je pourrais toutes les stockées dans un seul tableau.
Ca resoudrait le probleme.
Mais je n'aime pas détourner les problémes et ca peut toujours servir que ce soit pour moi ou pour autrui.
Bash'
[^] # Re: pas si compliqué ....
Posté par Bashful . Évalué à 1.
#!/bin/bash
var="gz"
for i in *.gz
do
eval ${var[#${!var[*]]}="$i"
done
for ((i=0;$i<${#${!var[*]}};i++))
do
echo -e " ${${!var[$i]}}"
done
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.