我正在为redhat linux机器上的串行设备创建TCP/IP接口。在一个bash脚本中的netcat被用来完成这个,而且不麻烦。如何修改netcat的输入流?
nc -l $PORT < $TTYDEVICE > $TTYDEVICE
的问题是,在串行设备使用回车对线(“\ R”)在它的响应结束。我想把它翻译成(“\ r \ n”),所以telnetting的windows机器可以毫无困难地查看响应。我试图弄清楚如何用简单的bash解决方案来解决这个问题。我也可以访问stty来配置串口设备,但是在输入端没有“\ r”来翻译“\ r \ n”(从我能说的)。
我曾尝试在netcat的输入端使用tr,但它不起作用。
#cat $TTYDEVICE | tr '\r' '\r\n' | nc -l $PORT > $TTYDEVICE
任何想法?
'tr'对字符到字符的翻译很有用,但它不会将一个字符转换为多个字符。 (指定较长的目标字符串只会导致多余的字符被忽略,在这种情况下'tr'应该显示警告。)。使用例如代替Perl。 – tripleee 2012-01-27 16:32:36