2013-08-12 50 views

回答

18

像這樣:

eval c=\$$var 

一個更好,更安全的方法是使用間接:

c=${!var} 
+1

這就是訣竅! – CocaCola

+0

謝謝!我一直在努力在bourne shell中做好幾個小時的變量變量。後面的選項列出了許多地方,但只能在'bash'中使用,但前者也可以在'sh'中使用。 – DanielM

11
newVariable=$(eval echo \$$var) 
+0

這似乎有效,但它會導致價值有美元符號作爲第一個字符?我試過\ $ var,但是我的字符串中的變量不再被擴展。有任何想法嗎? –

+0

'\'是轉義字符,如果你把它放在'$'之前,你肯定會得到它。試試'$ var'。或者使用上面的帖子中的第二個例子。 – hashier

0

這可以通過使用反引號實現 - `

c=`$var