foo='abc'
bar='xyz'
var=bar
当我'xyz'
时,如何访问var
我试过了:
$(echo $var)
和
$(eval echo $var)
我得到bar: command not found
答案 0 :(得分:5)
使用bash
间接变量引用:
${!var}
当然可以使用eval
完成,不推荐:
eval 'echo $'"$var"
<强>为什么:强>
$ bar=xyz
$ var='bar;whoami'
$ eval 'echo $'"$var"
xyz
spamegg
whoami
正在评估命令eval
作为评估的一部分,想象一个破坏性的命令,而不是whoami
。
示例:强>
$ bar='xyz'
$ var=bar
$ echo "${!var}"
xyz
$ eval 'echo $'"$var"
xyz