0
我在下面發佈的代碼之外定義了一個數組fanrp0 [1]和fanrp0 [2],我對粉絲0到3也做了同樣的處理。我試圖使fstat發生變化,以兩個陣列迴應每個粉絲。從bash中的連接變量中定義一個數組
for ((f=1; f<=2; f++))
do
for ((f2=0; f2<=3; f2++))
do
fstat="${(fanrp$f2)[$f]}"
echo $fstat
done
done
這是什麼問題? – anubhava
它看起來像你試圖做什麼bash指作爲間接引用,這顯然是相當困難和繁瑣的做與數組變量,由[這個Bash常見問題頁](http://mywiki.wooledge.org/BashFAQ/006),我在[這個問題]上找到了它(http://stackoverflow.com/questions/11180714/how-to-iterate-over-an-array-using-indirect-reference)。你可以更容易地完成你所需要的'eval' *,比如'eval「fstat = \ $ {fanrp $ f2 [$ f]}」',但是請記住,使用' eval'。我首先閱讀我鏈接到的Bash FAQ頁面。 –
一旦您開始將''[']'作爲索引語法,而不是作爲變量名稱的一部分,則間接數組引用更容易。如果你有一個數組'foo',那麼'foo [0]','foo [1]'等等都是奇怪的變量,每個變量都有自己的值。那麼'x = foo [0]'自然地導致'$ {!x}'相當於$ {foo [0]}'。 – chepner