这个替换有什么问题。变量内的变量
$ m_d_ver=0.2
$ m=mod
$ d=dom
$ echo ${$m_$d_ver}
-bash: ${$m_$d_ver}: bad substitution
感谢,
这个替换有什么问题。变量内的变量
$ m_d_ver=0.2
$ m=mod
$ d=dom
$ echo ${$m_$d_ver}
-bash: ${$m_$d_ver}: bad substitution
感谢,
什么你想要做的是一个间接的变量查找。其语法是${!namevar}
,其中namevar
是一个包含您实际想要评估的名称的变量。因此:
mod_dom_ver=0.2
m=mod
d=dom
var=${m}_${d}_ver
echo "${!var}"
请参阅BashFAQ #006。
谢谢,这是什么!标志 ? – user2230605
这是告诉shell进行间接查找。 –
顺便说一句,这里需要花括号,因为'_'是一个shell变量名中的有效字符,所以如果你写了'var = $ m_ $ d_ver',shell会试图展开'$ {m_}'并且'$ {d_ver}'。 –
“这个语法有什么问题?” - 错,它不是语言的实际语法?你有没有找到任何文件或参考文件让你认为最初的提案会被允许? –