2017-06-15 4 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

それを説明するか、答えを高くしてください...それは短すぎるとマークされました。 (以前のコメントは削除されました)。 –

関連する問題