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