這個替換有什麼問題。變量內的變量
$ 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}'。 –
「這個語法有什麼問題?」 - 錯,它不是語言的實際語法?你有沒有找到任何文件或參考文件讓你認爲最初的提案會被允許? –