![ファイルとシリアルポートの両方にデータを書き込む — tee を使用できますか?](https://rvso.com/image/23960/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%A8%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%AB%E3%83%9D%E3%83%BC%E3%83%88%E3%81%AE%E4%B8%A1%E6%96%B9%E3%81%AB%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%82%80%20%E2%80%94%20tee%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B%3F.png)
シリアル ポートからの入力をファイルに書き込み、さらにそのファイルを読み取ってシリアル ポートからホスト コンピュータに送り返そうとしています。同僚が「tee」コマンドの使用を提案しましたが、よい例が見つからないし、コマンドの意味もわかりません。「tee」でこれを行うことは可能ですか? tee は、ファイルを別の場所に送信するなどの 1 つのコマンドしか実行できないようですが、ポートを送信してからドキュメントに書き込み、ドキュメントを読み取ってポートに送信するということはできません。それとも、私が「tee」コマンドの基本を理解していないだけでしょうか。
答え1
このtee
コマンドは入力を標準出力とファイルに同時に書き込みます。簡単な例は次のようになります。
$ echo "Hi there..."|tee -a hi.txt
Hi there....
$cat hi.txt
Hi there....
上記の例では、STDOUTにテキストを表示し、それをに書き込みますhi.txt
。別の例としては、
$cat hi.txt|tee -a final.txt
Hi there.....
$cat final.txt
Hi there....
したがって、bash シェルを考慮すると、例は次のようになります。
$cat ./serial-port|tee -a <filename>
したがって、シリアルポートが20002の場合、上記のコマンドは次のようになります。
$cat $serial-port|tee -a serial.txt
20002
$cat serial.txt
20002