2014-02-21 139 views
1

我有一個運行變量,假設當前迭代的值爲INDEX = 1122。我已出口:Bash:如何引用其名稱中包含另一個變量的變量?

export PRO"$INDEX"=/some/fancy/dirry

現在我要引用這個變量,但如果我這樣做:

echo $"PRO$INDEX"

我得到:

PRO1122

相反,我想看到:

/some/fancy/dirry

很像echo $PRO1122的結果。

但是,我當然不能硬編碼循環中的值1122

回答

6

BASH已經有一個可變的參考機制。

你可以這樣做:

v="PRO$INDEX" 
echo "${!v}" 
/some/fancy/dirry 
3

使用eval

eval echo '$PRO'$INDEX 

但好像你應該使用一個數組,而不是嵌入索引的變量名。

+0

'eval'應僅用於殼(像POSIX'sh',這也沒啥陣列支持)不支持某種形式的間接參數擴展。 – chepner

相關問題