シリアル ポート (RS232 - USB アダプター - ポート: /dev/ttyUSB0) からデータ ストリームを読み取るには、bash スクリプトが必要です。データは、特定の入力 (「eof」など) が現れるまで、1 行ずつファイルに保存する必要があります。シリアルポートに任意の外部入力を与えることができます。今までは cat を使ってデータを読んでいましたが、うまくいきました。
cat /dev/ttyUSB0 -> file.txt
問題は、cntr+C を入力して自分でコマンドを終了する必要があることですが、データ ストリームがいつ終了し、ttyUSB0 ファイルが EOF を生成しないかが正確にはわかりません。これを自分で実装しようとしましたが、便利な解決策が見つかりませんでした。次のコマンドは機能しますが、問題に使用する方法がわかりません (「world」は「command not found」エラーを作成します)。
#!/bin/bash
cat > file.txt << EOF
hello
EOF
world
次のコードは私の問題に対して機能しますが、時間がかかりすぎます (データ ストリームは約 200 万行で構成されています)。
#!/bin/bash
while read line; do
if [ "$line" != "EOF" ]; then
echo "$line" >> file.txt
else
break
fi
done < /dev/ttyUSB0
私の問題に便利な可能性はありますか?