如何在gnu屏幕中切换CR / LF?

我正在使用屏幕从串行控制台读取文本。 问题是输出似乎只有换行\ n但不回车\ r,所以显示看起来像这样…

Line1 Line2 Line3 

我想知道是否有补丁来解决这个问题?

试试stty onlcr

手册页说,它将在输出上将换行符翻译为回车符/换行符,这似乎是您所需要的。

onlcr是为了将新出现的文件翻译成文件。

stty -F /dev/ttyS0 inlcr会将传入的换行符转换成回车符。 您可以在启动屏幕后从另一个终端运行该程序,以避免启动时可能会执行的任何重置操作。 不幸的是,这只会改变这个问题。 那么你只会得到回报而没有换行符。

所需要的是一个选项来追加一个返回到一个传入的换行符,以便终端接收\n\r ,这是串行设备应该输出的第一位。 似乎有一个onlret选项可以为外发数据执行此操作,但是在这种情况下我们似乎不需要inlret选项。

我有完全相同的问题(使用picocom虽然),我已经googling了好几天试图找到标准的修复,但似乎没有人。 有许多串行设备只输出\n ,根本不能输出\r\n ,我不相信它们全部只属于两个linux用户。 是什么赋予了!?

如果您使用pyserial附带的miniterm.py程序,它会将换行符解释为crlf。 它不是最全功能的终端仿真器,而是与简单的串行设备进行交互,从而完成工作。

用法语法(在OSX上):

 miniterm.py /dev/tty.usbserial-XXXXXX 115200 

将XXXXXX替换为系统中出现的任何设备。

在我的情况下工作: stty -F /dev/ttyACM0 -icrnl

因为串行被隐式设置为将CR翻译为NL。 这个命令把它设置回来。 注意icrnl前面的减号字符。