我有一個運行變量,假設當前迭代的值爲INDEX = 1122
。我已出口:Bash:如何引用其名稱中包含另一個變量的變量?
export PRO"$INDEX"=/some/fancy/dirry
現在我要引用這個變量,但如果我這樣做:
echo $"PRO$INDEX"
我得到:
PRO1122
相反,我想看到:
/some/fancy/dirry
很像echo $PRO1122
的結果。
但是,我當然不能硬編碼循環中的值1122
。
我有一個運行變量,假設當前迭代的值爲INDEX = 1122
。我已出口:Bash:如何引用其名稱中包含另一個變量的變量?
export PRO"$INDEX"=/some/fancy/dirry
現在我要引用這個變量,但如果我這樣做:
echo $"PRO$INDEX"
我得到:
PRO1122
相反,我想看到:
/some/fancy/dirry
很像echo $PRO1122
的結果。
但是,我當然不能硬編碼循環中的值1122
。
BASH已經有一個可變的參考機制。
你可以這樣做:
v="PRO$INDEX"
echo "${!v}"
/some/fancy/dirry
使用eval
:
eval echo '$PRO'$INDEX
但好像你應該使用一個數組,而不是嵌入索引的變量名。
'eval'應僅用於殼(像POSIX'sh',這也沒啥陣列支持)不支持某種形式的間接參數擴展。 – chepner