Existe-t-il un moyen d'imprimer le nom de la variable avec sa valeur?
j=jjj
k=kkk
l=lll
for i in j k l
do
....
done
Sortie attendue (chaque variable sur une ligne distincte):
j = jjj
k = kkk
l = lll
Quelqu'un peut-il suggérer un moyen d'obtenir le résultat ci-dessus?
Réponses:
De manière simple:
Le résultat:
${!i}
- expansion / indirection de la variable bash (obtient la valeur du nom de la variable détenue par$i
)la source
{j,k,l}
court avec{j..l}
aussi{j,k,l}
serait suffisantj k l
serait suffisant.Si vous avez bash v4.4 ou une version ultérieure, vous pouvez utiliser l'
${VAR@A}
opérateur d'expansion des paramètres.Ceci est discuté dans le manuel Bash à la section 3.5.3 Expansion des paramètres du shell
Donc, avec cela, vous pouvez faire:
Et votre résultat devrait être:
la source
Ou en cours d'
zsh
utilisationdeclare -p
la source
Bien qu'il
${!i}
s'agisse d'une solution plus propre et plus rapide, pour être complète, la référence indirecte peut également être obtenue avec l'exemple suivant:Donc:
Donne:
Références:
Références indirectes
la source