2017-06-06 9 views
-1

ファイルを読み込んで別のファイルに保存する必要があります。猫は、それが次の繰り返しになりますので、私はそれを止めることができるか、停止することはありませんんループでバイナリファイルをcatする方法

for i in $(seq 0 100) 
do 
    cat </dev/ttyO5> $FILE # I'm reading from a serial port, yes 
done 

:私はcatを使用しているために、問題は、このコードのようdoesntのは、EOFを含んで、読み込むファイルがバイナリであるということです等々?

ありがとうございます!

+2

EOFの前に読書を止めたい場合は、どうやって止めるべきですか?どの時点で 'cat'コマンドがここで' done'ですか? –

+0

それは問題です、eofはありません。私はシリアルケーブルでファイルを転送していますが、マシンはrawモードですので、 'EOF'を特定できません – Lomezno

+1

特定のバイト数だけ、または特定のパターンが見えるまで、または一定の時間それとも何か?止める方法は、いつそうするのかを知ることとは異なります。いつ止めるかを知ることは、ソリューションに影響を与える可能性があります。たとえば、 'timeout'を使うとしたら、おそらくバイトであれば' read -n'などを使うべきです。基本的には、これを終えたので次の繰り返しに行く時は分かりますか? –

答えて

-1

catをバックグラウンドに配置します。毎分ファイルサイズをチェックする別のループを追加します。 (妥当な時間だと思うものは何でも)その時間にファイルが増殖していない場合は、kill -9 $!で猫を殺す。

+0

あなたはバイト数を知っていることを教えてくれるので、ファイルのバイト数を 'wc -c $ file'。それが転送したい番号と一致すれば 'cat'プロセスを終了してください。タイムアウトした場合は、ファイルサイズを確認し、予想外の場合はエラーメッセージを表示してください。 – Jack

関連する問題