J'essaie de créer une nouvelle variable en utilisant la valeur d'une variable existante dans le cadre du nom de la variable.
filemsg"$word1"=" "
J'ai aussi essayé
filemsg$word1=" "
filemsg${word1}=" "
à toutes les tentatives, j'obtiens ce qui suit lorsque cette ligne s'exécute,
cicserrors.sh[45]: filemsgCICS= : not found [No such file or directory]
Réponse acceptée :
Utilisez eval
:
filemsgCICS=foo
word1=CICS
eval "echo "$filemsg$word1"" # => foo
eval "filemsg$word1=bar"
echo "$filemsgCICS" # => bar
mais réfléchissez-y à deux fois si vous en avez vraiment besoin de cette façon.
Une autre façon en ksh93
est d'utiliser namerefs :
word1=CICS
nameref v=filemsg$word1
v="xxx"
echo "$filemsgCICS" # => xxx
Pour des hacks encore plus méchants comme celui-ci, regardez ici.