foo='abc'
bar='xyz'
var=bar
当我有var
时,如何访问'xyz'
?
我尝试了以下方法:
$(echo $var)
并且
$(eval echo $var)
我只是得到了“bar: command not found”错误提示。
使用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
eval
,那会让这更加优雅。 :) ++ - sjsam