【发布时间】:2015-10-20 23:30:50
【问题描述】:
这个替换有什么问题。
$ m_d_ver=0.2
$ m=mod
$ d=dom
$ echo ${$m_$d_ver}
-bash: ${$m_$d_ver}: bad substitution
谢谢,
【问题讨论】:
-
"这个语法有什么问题?" -- 错误,这不是语言的实际语法?您是否找到任何文件或参考资料让您认为原始提案会被允许?
标签: bash
这个替换有什么问题。
$ m_d_ver=0.2
$ m=mod
$ d=dom
$ echo ${$m_$d_ver}
-bash: ${$m_$d_ver}: bad substitution
谢谢,
【问题讨论】:
标签: bash
您正在尝试做的是间接变量查找。其语法为${!namevar},其中namevar 是一个包含您实际要评估的名称的变量。因此:
mod_dom_ver=0.2
m=mod
d=dom
var=${m}_${d}_ver
echo "${!var}"
【讨论】:
_ 是shell 变量名中的有效字符,所以如果你写var=$m_$d_ver,shell 会尝试扩展${m_} 和@ 987654328@.