我对此抓狂,找不到关于它的bash引用。

在下面的代码中

host_color=${uphost}_host_color
host_color=${!host_color}

第二行在做什么? !operator在这种情况下会做什么?

最佳答案

这是indirect references的缩写。

$ foo=bar
$ bar=bas
$ echo ${!foo}
bas

看似相似的构造${!foo*}扩展为名称以foo开头的所有变量的名称:
$ foo1=x
$ foo2=y
$ echo ${!foo*}
foo1 foo2

关于重击$ {!variable},我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10316888/

10-10 14:48