以前にこの質問に対する回答があった場合は申し訳ありません。検索しようとしましたが、その答えが見つかりませんでした。
$a="hello"
$b="world"
$helloworldtest="worked"
echo "${a}${b}test"
- 印刷Hello{World}test
echo "${a}$btest"
- 印刷Hello
echo "$a$btest"
- 印刷Hello
ベストアンサー1
bashコマンドを使用してdeclare
動的変数名を作成します。
$ a=hello
$ b=world
$ declare "${a}${b}test=worked"
$ printf ">>%s\n" "$a" "$b" "$helloworldtest"
>>hello
>>world
>>worked
本当に欲しいとき使用動的変数名の場合は、以下を使用する必要があります。
- 間接変数
varname=${a}${b}test echo "${!varname}" # => worked
- または nameref (bash バージョン 4.3+)
declare -n ref=${a}${b}test echo "$ref" # => worked
しかし、連想配列は使いやすくなります。
$ declare -A testvar
$ testvar[$a$b]="this works too"
$ echo "${testvar[helloworld]}"
this works too