Gibt es eine Möglichkeit, den Variablennamen zusammen mit seinem Wert zu drucken?
j=jjj
k=kkk
l=lll
for i in j k l
do
....
done
Erwartete Ausgabe (jede Variable in einer separaten Zeile):
j = jjj
k = kkk
l = lll
Kann jemand einen Weg vorschlagen, um das obige Ergebnis zu erzielen?
Antworten:
Auf einfache Weise:
Die Ausgabe:
${!i}
- Bash- Variablenerweiterung / Indirektion (erhält den Wert des Variablennamens von$i
)quelle
{j,k,l}
kurz machen mit{j..l}
auch{j,k,l}
wäre genugj k l
wäre genug.Wenn Sie bash v4.4 oder höher haben, können Sie den
${VAR@A}
Parametererweiterungsoperator verwenden.Dies wird im Bash-Handbuch unter Abschnitt 3.5.3 Erweiterung der Shell-Parameter erläutert
Damit können Sie also Folgendes tun:
Und Ihr Ergebnis sollte sein:
quelle
Oder in
zsh
Gebrauchdeclare -p
quelle
Obwohl
${!i}
es sich um eine sauberere und schnellere Lösung handelt, kann der Vollständigkeit halber die indirekte Referenz auch anhand des folgenden Beispiels erhalten werden:Deshalb:
Gibt:
Verweise:
Indirekte Referenzen
quelle