Bash变量引用

时间:2016-09-01 17:49:28

标签: bash variables reference

foo='abc'
bar='xyz'
var=bar

当我'xyz'时,如何访问var

我试过了:

$(echo $var)

$(eval echo $var)

我得到bar: command not found

1 个答案:

答案 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