Unix中打印回车的默认行为是什么?

Unix中打印回车的默认行为是什么?,unix,terminal,Unix,Terminal,我看到了很多关于如何删除它们的问题,但我还没有找到答案来解释为什么它们会破坏我在Unix系统和终端中的所有测试/打印功能 那么,在程序员的意义上,为什么回车会弄乱Unix shell呢 编辑:是的,我可以。我并不是想咆哮,但我想知道是什么原因导致了《马车》杂志的回忆录很有趣 例如,从系统获取消息时,所有消息都以\r\n结尾。然后我必须做一些类似于message[length-2]='\0';在C或perl中的$str=~s/\r//g中 编辑2:在Unix系统中打印回车的默认行为是什么?它似乎会

我看到了很多关于如何删除它们的问题,但我还没有找到答案来解释为什么它们会破坏我在Unix系统和终端中的所有测试/打印功能

那么,在程序员的意义上,为什么回车会弄乱Unix shell呢

编辑:是的,我可以。我并不是想咆哮,但我想知道是什么原因导致了《马车》杂志的回忆录很有趣

例如,从系统获取消息时,所有消息都以\r\n结尾。然后我必须做一些类似于message[length-2]='\0';在C或perl中的$str=~s/\r//g中


编辑2:在Unix系统中打印回车的默认行为是什么?它似乎会引起问题,通常需要删除。

这是因为不同的系统解释不同的字符组合来表示行尾。Windows使用\r\n、*unix使用\n和Mac在一个点上使用\r\n。现在,当您在Unx中获得Windows创建的文本文件时,\r\n会得到额外的文本文件,需要将其删除


有一个很好的实用程序,名为,它可以为您处理这种格式转换。

因为它们在Unix系统上是不必要的,也是不受欢迎的

你也应该看看你的stty设置。有一些选项可以处理输入和输出上的NL/CR映射。stty-a在Linux机上说:

一个问题可能是,您修复了一些问题,使return不再发送到终端。在这种情况下,请尝试键入Control Jstty$saved\u tty\u settings Control-J。第一个Control-J刷新以前的任何命令或不执行任何操作;然后,其余的运行stty重置操作。我仍然有一个名为sane的脚本,它记录了我首选的tty设置,如果有必要,我可以使用它。在过去十年左右的时间里,我没有经常使用它,但我也没有去摆弄tty设置


使用危险的命令时一定要非常小心,rm等人,如果你看不到你键入的内容,失去跟踪,禁用行编辑等,甚至使用引号也会导致问题。所以,你可以玩;只是要小心。

你能提供一个具体的例子,说明你用来修复它的代码吗?问一个关于代码的问题?这看起来更像是一个咆哮而不是一个问题。这很有趣,谢谢。
speed 9600 baud; rows 65; columns 120; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^X; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q;
stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -cdtrdsr
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
saved_tty_settings=$(stty -g)

...tinker with the settings here...

stty $saved_tty_settings