2つの変数を連結して3番目の変数を呼び出す

2つの変数を連結して3番目の変数を呼び出す

以前にこの質問に対する回答があった場合は申し訳ありません。検索しようとしましたが、その答えが見つかりませんでした。

$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

本当に欲しいとき使用動的変数名の場合は、以下を使用する必要があります。

  1. 間接変数
    varname=${a}${b}test
    echo "${!varname}"     # => worked
    
  2. または 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

おすすめ記事