Estoy tratando de crear una nueva variable utilizando el valor de una variable existente como parte del nombre de la variable.
filemsg"$word1"=" "
También lo he probado
filemsg$word1=" "
filemsg${word1}=" "
en todos los intentos obtengo lo siguiente cuando se ejecuta esa línea,
cicserrors.sh[45]: filemsgCICS= : not found [No such file or directory]
Respuesta aceptada:
Usa eval
:
filemsgCICS=foo
word1=CICS
eval "echo "$filemsg$word1"" # => foo
eval "filemsg$word1=bar"
echo "$filemsgCICS" # => bar
pero piénselo dos veces si realmente lo necesita de esta manera.
Otra forma en ksh93
es usar referencias de nombre:
word1=CICS
nameref v=filemsg$word1
v="xxx"
echo "$filemsgCICS" # => xxx
Para trucos aún más desagradables como ese, mira aquí.