wef*_*fa3 10 shell bash environment-variables arguments variable
我需要在bashshell 中间接引用一个变量。
我基本上想make通过写作来做你可以做的事情$($(var))。
我曾尝试使用${$var}哪个是最直接的解决方案,bash但随后出现此错误:
bash: ${$var}: bad substitution
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
我想要做的是使用迭代变量将所有参数 ( $1, $2, $3, ...) 迭代到程序中,如果没有间接,我无法做到这一点。
Tom*_*unt 14
如果你有var1=foo和foo=bar,你可以bar通过说得到${!var1}。但是,如果您想迭代位置参数,几乎肯定会更好
for i in "$@"; do
# something
done
Run Code Online (Sandbox Code Playgroud)
使用/bin/bash:
foo=bar
test=foo
echo ${!test}
# prints -> bar
Run Code Online (Sandbox Code Playgroud)