私は、Redhat Linuxマシン上のシリアルデバイスへのTCP/IPインターフェイスを作成しています。 bashスクリプトのnetcatを使用してこれを達成しました。netcatの入力ストリームを変更するには?
nc -l $PORT < $TTYDEVICE > $TTYDEVICE
問題は、シリアルデバイスがラインは、その応答で終了するキャリッジリターン(「\ rを」)を使用することです。私はこれを( "\ r \ n")に翻訳して、telnet接続しているWindowsマシンが何の問題もなく応答を見ることができるようにします。私は単純なbashソリューションでこれについてどうやって行くのかを考えようとしています。私もsttyにアクセスしてシリアルデバイスを設定していますが、 "\ r"から "\ r \ n"への変換は入力側にありません。
netcatの入力側でtrを使用しようとしましたが、動作しませんでした。
#cat $TTYDEVICE | tr '\r' '\r\n' | nc -l $PORT > $TTYDEVICE
'tr'は文字から文字への変換には便利ですが、1文字を複数の文字に変換することはありません。 (より長いターゲット文字列を指定すると、余分な文字は無視されます。この場合、 'tr'は警告を表示するでしょう)。例えば代わりにPerl。 – tripleee