2016-04-18 52 views
1

我怎麼能是指間接變量在Korn shell間接引用

想我也變的

FLAG_1=0 

,我想這個變量值從,我要作改變陣列VE設置

set -A Flags_array 
Flags_array[0]=? #how to achieve this here 

例如,如果我嘗試

Flags_array[0]=$FLAG_1 # this won't work as this assign the value 

我試圖做這樣的事情

Flags_array[0]=FLAG_1 
echo ${Flags_array[0]} 

但是這給輸出FLAG_1

我嘗試使用nameref,但它給我的錯誤

$ nameref Flags_array[0]=FLAG_1 
ksh: nameref: not found 

請告訴我什麼是實現這一正確的方法? 因爲我想做的事就是後來的 如果我寫Flags_array[0]=10value of FLAG_1 becomes 10

回答

0

我剛剛試了一下我的控制檯上,似乎你正在使用一套無效選項....嘗試使用一個小的,而不是資本:

set -a Flags_array 

只是沒有像這樣在我的控制檯和工作:

set -a array 
number=5 
array[0]= $number 
echo $array[0] --------> from which i got result : 5[0] 

也只知道以供將來參考,你不需要大括號{},這些你只用如果要調用在一個地方一個變量是實際數據將預期(遺憾的表情),這裏例如你需要他們:

were e.g. random=5 

sed "${random}s/^.*$/1/" test.txt 

希望這會清除你的東西。 。:)

+0

大寫A也有效。 +沒有大括號你得到的結果是不是一個有效的結果'結果:5 [0]'在這裏我不尋求結果的問題是關於間接引用 – user4890159

+1

男人什麼告訴你,在我的機器上連接在私人服務器上它與小a一起工作,在資本上我得到一個錯誤amd它也可以在結果上正常工作,你確定你正在運行ksh嗎? – hedgehog