【问题标题】:Shell variable inside variable [duplicate]变量内的外壳变量[重复]
【发布时间】: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


【解决方案1】:

您正在尝试做的是间接变量查找。其语法为${!namevar},其中namevar 是一个包含您实际要评估的名称的变量。因此:

mod_dom_ver=0.2
m=mod
d=dom
var=${m}_${d}_ver
echo "${!var}"

BashFAQ #006

【讨论】:

  • 谢谢,这是什么!签到?
  • 它告诉 shell 进行间接查找。
  • 顺便说一句,这里需要大括号,因为_ 是shell 变量名中的有效字符,所以如果你写var=$m_$d_ver,shell 会尝试扩展${m_} 和@ 987654328@.
猜你喜欢
  • 2014-06-27
  • 1970-01-01
  • 2011-07-01
  • 2015-09-01
  • 2011-09-22
  • 2015-01-01
  • 2011-01-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多