2017-04-01 6 views
0

私はbashスクリプトファイルから次の行で読むの各呼び出し

for ((i=0; i < 2500; i++)); do 
    ./program.bin <in>> out 
done 

を持っているが、私は次の行から、私はこれを呼び出すたびに読んでもらいたいです。例えば、これは私のファイルです

1024 2048 3096 

1045 8754 5412 

5648 5457 5646 

EOF 

このループで初めてプログラムは1024 2048 3096を入力として取得します。 2回目には1045 8754 5412というようになります。私はそれが設定されているように感じています。今度は最初の行だけを継続的に読み込みます。この問題をどうやって解決するのですか?

答えて

0

代わりにこれを試してみてください:

while IFS= read -r line 
do 
    ./program.bin <<<"$line" >> out 
done < in 

この読み取ります線でinファイルの行を、各ラインコール./program.binのために、読み値を提供(変数lineの中に発見)とに、標準入力の上、それを供給プログラム。

もちろん、このプログラムをコーディングする場合、プログラム自体で複数行の入力を処理できるようにすることもできます。

関連する問題