Indirekte Variablen in der bash
Morsche Zusammen,
bin gerade dabei auf einer Linuxkiste ein Script zusammenzuklöppeln:
Vermutlich fehlt es mir bei dieser Anfängerfrage an persönlichem Wissen und würde daher um Eures bitten.
Script:
Als Ausgabe erhalte ich:
Ziel:
Meine Suche(n) diesbezüglich haben mich zu indirekten Variablen {!var1} und zu eval geleitet.
Mit beiden Varianten bin ich aber nicht erfolgreich gewesen.
Ist mein Vorhaben überhaupt grundsätzlich möglich oder komme ich nicht drumherum zuerst ${var2} zu deklarieren ?
Über eine Lösung wäre ich entzückt.
Gruß,
JudgeDredd
bin gerade dabei auf einer Linuxkiste ein Script zusammenzuklöppeln:
Vermutlich fehlt es mir bei dieser Anfängerfrage an persönlichem Wissen und würde daher um Eures bitten.
Script:
var1='hello ${var2}'
var2='world'
echo "${var1}"
Als Ausgabe erhalte ich:
hello ${var2}
Ziel:
hello world
Meine Suche(n) diesbezüglich haben mich zu indirekten Variablen {!var1} und zu eval geleitet.
Mit beiden Varianten bin ich aber nicht erfolgreich gewesen.
Ist mein Vorhaben überhaupt grundsätzlich möglich oder komme ich nicht drumherum zuerst ${var2} zu deklarieren ?
Über eine Lösung wäre ich entzückt.
Gruß,
JudgeDredd
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 82399572724
Url: https://administrator.de/contentid/82399572724
Ausgedruckt am: 21.11.2024 um 23:11 Uhr
2 Kommentare
Neuester Kommentar
var1='hello ${var2}'
var2='world'
# -------
# substitution direkt ausgeben
eval "echo \"$var1\""
# oder Ergebnis wieder Variablen zuweisen
eval "ergebnis=\"$var1\""
echo $ergebnis
Würde da aber eher ne Function für definieren dann die Template Variablen definieren und am Ende die Function aufrufen. Denn eval is evil ...
So wie hier beschrieben
https://unix.stackexchange.com/questions/60688/how-to-defer-variable-exp ...
Sid.