在shell中间接扩展变量


9

我需要在bashShell中间接引用变量。

我基本上是想make通过写作做些什么$($(var))

我尝试使用${$var}哪种方法是最直接的解决方案,bash但随后出现此错误:

bash: ${$var}: bad substitution

有没有办法做到这一点?

我所试图做的是遍历所有参数($1$2$3,...)来使用迭代变量的程序并没有间接我不能做到这一点。

Answers:


13

如果你有var1=foofoo=bar,你可以bar${!var1}。但是,如果要遍历位置参数,几乎可以肯定,这样做更好

for i in "$@"; do
    # something
done

有没有一种方法可以添加多个间接级别?
wefwefa3

1
并不是我可以很快找到。明显的猜测是${!!var1}行不通的。但是,您始终可以手动进行操作,例如tmp=${!var1}; echo ${!tmp}
汤姆·亨特

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.