No bash, como posso repetir o nome da variável, não o valor da variável?

No bash, como posso repetir o nome da variável, não o valor da variável?

Suponha que eu tenha uma variável varno bash. Posso atribuir um valor a ele. Por exemplo, vou transformá-lo em uma string:

var="Test"

Quero echoo nome de var, não o valor mantido por var. (Posso fazer o último echo $var, mas na verdade quero fazer o primeiro.)

A resposta a esta pergunta do SOdiz para usar echo ${!var}, mas quando faço isso, echo apenas retorna uma linha em branco. Por exemplo, este script bash

#!/bin/bash

echo "Hi"
var="Test"
echo ${!var}
echo "Bye"

retorna esta saída:

Hi

Bye

com apenas uma linha em branco entreOieTchau, em vez devar. O que estou fazendo de errado?

Estou correndobash 4.1.5(1)sobreUbuntu 10.04.4.

Responder1

Oexpansão de parâmetro shell ${!nome@}ou${!nome*}poderia fazer o truque,

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

Embora viável, não consigo imaginar a utilidade disso ...

Responder2

Se você quiser simplesmente gerar um nome de variável estática, você pode escapar do $sinal -:

echo \$var

informação relacionada