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
Please also mark the comments that contributed to the solution of the article
Content-Key: 82399572724
Url: https://administrator.de/contentid/82399572724
Printed on: April 27, 2024 at 08:04 o'clock
2 Comments
Latest comment
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.