Sto cercando di creare una nuova variabile utilizzando il valore di una variabile esistente come parte del nome della variabile.
filemsg"$word1"=" "
Ho anche provato
filemsg$word1=" "
filemsg${word1}=" "
in tutti i tentativi ottengo quanto segue quando viene eseguita quella riga,
cicserrors.sh[45]: filemsgCICS= : not found [No such file or directory]
Risposta accettata:
Usa eval
:
filemsgCICS=foo
word1=CICS
eval "echo "$filemsg$word1"" # => foo
eval "filemsg$word1=bar"
echo "$filemsgCICS" # => bar
ma pensaci due volte se ne hai davvero bisogno in questo modo.
Un altro modo in ksh93
è usare namerefs:
word1=CICS
nameref v=filemsg$word1
v="xxx"
echo "$filemsgCICS" # => xxx
Per hack ancora più sgradevoli come quello guarda qui.