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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Je ne connaissais pas cette seconde syntaxe, quelle est la différence avec la première, laquelle vaut il mieux privilégier ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
merci d'avance,
ben![]()
Partager