我有变量$foo="something",想使用:
bar="foo"; echo $($bar)
Run Code Online (Sandbox Code Playgroud)
让某些东西得到回应.
dAm*_*m2K 73
在bash中,您可以使用$ {!variable}来使用变量变量.
foo="something"
bar="foo"
echo "${!bar}"
Run Code Online (Sandbox Code Playgroud)
接受的答案很棒.但是,@ Edison问如何对数组做同样的事情.诀窍是你希望变量保持"[@]",以便用"!"扩展数组.检查此函数以转储变量:
$ function dump_variables() {
for var in "$@"; do
echo "$var=${!var}"
done
}
$ STRING="Hello World"
$ ARRAY=("ab" "cd")
$ dump_variables STRING ARRAY ARRAY[@]
Run Code Online (Sandbox Code Playgroud)
这输出:
STRING=Hello World
ARRAY=ab
ARRAY[@]=ab cd
Run Code Online (Sandbox Code Playgroud)
当作为公正给出时ARRAY,第一个元素显示为由...扩展的元素!.通过给出ARRAY[@]格式,您可以获得数组及其所有值的扩展.
eval echo \"\$$bar\" 会做的.