2013-10-05 46 views
0

對不起,如果標題不是很清楚。所以,我嘗試使用read獲得(在這個例子中$ A)的變量從用戶後呼應在bash變量,像這樣:你如何迴應在bash中回顯變量的'輸出'?

foobar="good" 
A=bar 
B="\$foo$A" 
echo $B 

但呼應$ B的輸出爲「$ foob​​ar「,而不是」好「,這正是我想要的。我試過最後使用eval $B,但它只是告訴我「好」不是命令。 eval $(echo $B)也沒有工作,它也告訴我,「好」不是一個命令。 echo $(eval $B)也告訴我,「好」不是一個命令,也打印一個空行。

爲了說明爲什麼我需要這樣做:foobar是一個包含字符串「good」的變量,foobaz包含「bad」,我想讓用戶通過鍵入「bar 「或」巴茲「,而程序運行read A(在這個例子中,我只是將A分配爲bar來使這個問題更容易理解)。

如果有人可以請告訴我如何使這項工作,或提供相關的技巧,我會很感激,謝謝。

回答

1

你要找的間接引用:

$ foobar="hello" 
$ A=bar 
$ B="foo$A" 
$ echo "$B" "${!B}" 
foobar hello 

你應該看看How can I use variable variables常見問題解答有關這些信息越多(關聯數組)。

+0

謝謝,這工作,我會看看那篇文章。 – AwesomeBen1