【发布时间】:2012-01-27 14:55:04
【问题描述】:
我正在为 Redhat linux 机器上的串行设备创建 TCP/IP 接口。使用 bash 脚本中的 netcat 即可轻松完成此任务。
nc -l $PORT < $TTYDEVICE > $TTYDEVICE
问题在于串行设备在其响应中使用回车符('\r')作为行尾。我想将其翻译为 ("\r\n") 以便远程登录的 Windows 机器可以毫无问题地查看响应。我试图弄清楚如何用一个简单的 bash 解决方案来解决这个问题。我也可以访问 stty 来配置串行设备,但是在输入端没有“\r”到“\r\n”的转换(据我所知)。
我确实尝试在netcat的输入端使用tr,但是没有用。
#cat $TTYDEVICE | tr '\r' '\r\n' | nc -l $PORT > $TTYDEVICE
有什么想法吗?
【问题讨论】:
-
tr对于字符到字符的翻译很有用,但它不会将一个字符翻译成多个字符。 (指定更长的目标字符串只会导致多余的字符被忽略。也许tr在这种情况下应该显示警告。)。使用例如而是 Perl。
标签: linux bash serial-port netcat stty