GNU/Linux >> Linux の 問題 >  >> Linux

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

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

filemsg"$word1"=" "

私も試しました

filemsg$word1=" "

filemsg${word1}=" "

すべての試行で、その行が実行されると次のようになります。

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

承認された回答:

evalを使用する :

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

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

ksh93の別の方法 namerefsを使用することです:

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

そのようなさらに厄介なハックについては、こちらをご覧ください。


Linux
  1. Linux –スラッシュ(/)はLinuxルートディレクトリの名前の一部ですか?

  2. Wgetを使用する場合のCookieの形式は?

  3. 変数と整数を使用した基本的な除算?

  1. Cで新しいディレクトリを作成する

  2. ファイルから (特定の行と列の) 値を抽出し、それを新しい変数に割り当てる方法

  3. 特定のパターンに一致するファイルを見つけ、そのファイル名をシェル スクリプトの変数に値として指定しますか?

  1. SedでBash文字列変数への参照を使用しますか?

  2. Apache – * .local Ssl証明書を作成しますか?

  3. スクリプトで変数名を持つ空のファイルを作成しますか?