我正在尋找一種方法將字符串添加到bash中的變量名稱中,並將其評估爲新變量。例如:Bash中變量變量的變化
#!/bin/bash
file="filename"
declare ${file}_info="about a file"
declare ${file}_status="status of file"
declare ${file}_number="29083451"
echo ${${file}_info} # <-- This fails with error: "bad substitution"
有沒有辦法做到這一點?
我實際上並沒有在任何地方的任何生產代碼中實現這個。我只想知道是否有某種方法可以使用變量和字符串創建變量名稱。這似乎是一個有趣的問題。
另請注意,我是而不是問關於bash間接尋址,這是使用${!x}
來評估變量的內容作爲變量。
它看起來像在http://stackoverflow.com/questions/8435256/use-string-as給出的EVAL方法-variable-name-in-bash-script可能就是你正在尋找的那個。 – jpe 2014-10-06 21:54:55
間接常見問題解答告訴您如何編寫,而不僅僅是如何閱讀,所以它實際上是同一主題。 – 2014-10-06 22:09:17
同意。正如我已經審查過評論和答覆,似乎必須在解決方案中涉及間接性。我希望有另一種方式,但是如果在這個過程中使用間接方法,似乎至少有一種解決方案。 – vastlysuperiorman 2014-10-06 22:10:45