连接两个变量来调用第三个变量

连接两个变量来调用第三个变量

如果之前已经回答过这个问题,我很抱歉,我尝试搜索但无法找到任何相应的答案:

$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

相关内容