[bash] accéder à la valeur d'une variable dont le nom est construit par un script : eval ou $[var]
Salut à tous,
je souhaite accéder à la valeur d'une variable créée dans un script à partir d'une variable $prefixe et d'une variable $suffixe.
pour cela , j'utilise la commande eval afin de faire subir une double évaluation à la ligne contenant le nom de ma variable d'intérêt. Or je viens de voir dans un script bash une autre syntaxe qui semble pouvoir permettre de faire ça : $[var] .
voici le script :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
1 #!/bin/bash
2
3 #nom de la variable dont la valeur m interesse
4 prefixe_suffixe='9000'
5 var1="prefixe"
6 var2="suffixe"
7
8 #creation du nom de la variable d interet
9 var_full="${var1}_${var2}"
10 echo $var_fulldd
11
12 #syntaxe 1 : double evaluation avec eval
13 eval "echo \$${var_full}"
14
15
16 #syntaxe 2 : ??
17 echo $[$var_full] |
et voici le résultat de son exécution :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
[benoit@benoit src]$ bash -x testVariables.sh
+ prefixe_suffixe=9000
+ var1=prefixe
+ var2=suffixe
+ var_full=prefixe_suffixe
+ echo
+ eval 'echo $prefixe_suffixe'
++ echo 9000
9000
+ echo 9000
9000 |
Je ne connaissais pas cette seconde syntaxe, quelle est la différence avec la première, laquelle vaut il mieux privilégier ?
merci d'avance,
ben ;)