2017-06-15 51 views
0

我已經從文件中讀取輸入,並且文件中的每一行都將以'|'結尾。我想循環到一個數組,以便在後面的代碼中使用。這是我到目前爲止,但通過數組循環不起作用。Unix:將這些值附加到動態數組中以供將來使用

#!/bin/ksh 

TEMP="abc1|abc2|abc3 1;abc4 1" 
rest=$TEMP 
field=() 

while [ -n "$rest" ] 
do 
     str=${rest%%\|*} 
     field+=("$str") 
     [ "$rest" = "${rest/\|/}" ] && rest= || rest=${rest#*\|} 
     #print $str 
done 

for x in ${field} 
do 
     echo $x 

done 

print $ str正常,但當我循環獲取值時,我沒有得到值。 任何幫助來解決這個問題。

謝謝。

回答

1

失去了一些東西......

for x in "${field[@]}"; do echo $x; done 
+0

這是他需要做的加上'[@]'和引用它,如什麼。 – karakfa

+0

請解釋它或在答案中強調它......它被標記爲太短。 (先前的評論被刪除)。 –