En bash, comment puis-je faire écho au nom de la variable, pas à la valeur de la variable?

Supposons que j'ai une variable var dans bash. Je peux lui atsortingbuer une valeur. Par exemple, je vais en faire une string:

 var="Test" 

Je veux faire echo au nom de var , pas à la valeur de var . (Je peux faire ce dernier avec echo $var , mais je veux vraiment faire le premier.)

La réponse à cette question de SO dit d'utiliser echo ${!var} , mais quand je fais cela, j'écho renvoie juste une ligne vide. Par exemple, ce script bash

 #!/bin/bash echo "Hi" var="Test" echo ${!var} echo "Bye" 

renvoie cette sortie:

 Hi Bye 

avec juste une ligne vide entre Hi et Bye , au lieu de var . Qu'est-ce que je fais mal?

Je cours bash 4.1.5 (1) sur Ubuntu 10.04.4 .

L' extension du paramètre shell $ {! Name @} ou $ {! Name *} pourrait faire l'affaire,

 $ foo=bar $ var_name=(${!foo@}) $ echo $var_name" = "$foo foo = bar 

Bien que possible, je ne peux pas imaginer l'utilité de cette …

Voici encore plus court:

 echo \$var