新しい変数名の一部として変数値を使用して変数を作成します。

新しい変数名の一部として変数値を使用して変数を作成します。

既存の変数の値を変数名の一部として使用して新しい変数を作成しようとしています。

filemsg"$word1"=" "

私も試しました

filemsg$word1=" "

filemsg${word1}=" "

すべての試行でこの行が実行されると、次の結果が得られます。

cicserrors.sh[45]: filemsgCICS= : not found [No such file or directory]

ベストアンサー1

使用eval:

filemsgCICS=foo
word1=CICS
eval "echo \"\$filemsg$word1\"" # => foo
eval "filemsg$word1=bar"
echo "$filemsgCICS" # => bar

しかし、本当にこの方法が必要な場合は、もう一度考えてみてください。

もう一つのksh93方法名前参照:

word1=CICS
nameref v=filemsg$word1
v="xxx" 
echo "$filemsgCICS" # => xxx

このような不快なハッキングを見るには、次のことを確認してください。ここ

おすすめ記事