如果之前已经回答过这个问题,我很抱歉,我尝试搜索但无法找到任何相应的答案:
$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