Ich versuche, eine neue Variable zu erstellen, indem ich den Wert einer vorhandenen Variablen als Teil des Variablennamens verwende.
filemsg"$word1"=" "
Ich habe es auch versucht
filemsg$word1=" "
filemsg${word1}=" "
bei allen Versuchen erhalte ich Folgendes, wenn diese Zeile ausgeführt wird,
cicserrors.sh[45]: filemsgCICS= : not found [No such file or directory]
Akzeptierte Antwort:
Verwenden Sie eval
:
filemsgCICS=foo
word1=CICS
eval "echo "$filemsg$word1"" # => foo
eval "filemsg$word1=bar"
echo "$filemsgCICS" # => bar
aber überlegen Sie es sich zweimal, ob Sie es wirklich so brauchen.
Ein anderer Weg in ksh93
ist namerefs zu verwenden:
word1=CICS
nameref v=filemsg$word1
v="xxx"
echo "$filemsgCICS" # => xxx
Noch mehr fiese Hacks wie diesen finden Sie hier.