Existe alguma maneira de imprimir o nome da variável junto com seu valor?
j=jjj
k=kkk
l=lll
for i in j k l
do
....
done
Saída esperada (cada variável em uma linha separada):
j = jjj
k = kkk
l = lll
Alguém pode sugerir uma maneira de obter o resultado acima?
Respostas:
De maneira simples:
A saída:
${!i}
- expansão / indireção da variável bash (obtém o valor do nome da variável mantido por$i
)fonte
{j,k,l}
short com{j..l}
também{j,k,l}
seria suficientej k l
seria o suficiente.Se você tiver o bash v4.4 ou posterior, poderá usar o
${VAR@A}
operador de expansão Parameter.Isso é discutido no manual do Bash, na seção 3.5.3 Expansão dos parâmetros do shell
Então, com isso, você pode fazer:
E seu resultado deve ser:
fonte
Ou em
zsh
usodeclare -p
fonte
Embora
${!i}
seja uma solução mais limpa e rápida, para garantir a integridade, a referência indireta também pode ser obtida com o seguinte exemplo:Portanto:
Dá:
Referências:
Referências Indiretas
fonte