¿Hay alguna forma de imprimir el nombre de la variable junto con su valor?
j=jjj
k=kkk
l=lll
for i in j k l
do
....
done
Salida esperada (cada variable en una línea separada):
j = jjj
k = kkk
l = lll
¿Alguien puede sugerir una forma de obtener el resultado anterior?
Respuestas:
De manera simple:
La salida:
${!i}
- expansión / indirección de la variable bash (obtiene el valor del nombre de la variable en poder de$i
)fuente
{j,k,l}
corto con{j..l}
también:){j,k,l}
sería suficientej k l
seria suficiente.Si tiene bash v4.4 o posterior, puede usar el
${VAR@A}
operador de expansión de parámetros.Esto se trata en el manual de Bash en la sección 3.5.3 Expansión de parámetros de Shell
Entonces con esto puedes hacer:
Y su resultado debería ser:
fuente
O en
zsh
usodeclare -p
fuente
Si bien
${!i}
es una solución más limpia y rápida, para completar, la referencia indirecta también se puede obtener con el siguiente ejemplo:Por lo tanto:
Da:
Referencias
Referencias indirectas
fuente