有一份声明
stty onlcr 0>&1
在 rc.sysvinit 文件中。这一行到底起什么作用?将 stdin 重定向到 stdout 的原因是什么?
答案1
$ man stty
...
* [-]onlcr
translate newline to carriage return-newline
...
文件中甚至还有一条您没有提到的评论:
# Set onlcr to avoid staircase effect.
这样就应该清楚该行的作用了。默认情况下,该stty
行在 上运行,但此行会更改输出设置,因此使其在 上运行。如果您有一个盒子,其中控制台 stdout 连接到一个串行端口,而控制台 stdin 输入连接到其他源,那么这实际上很重要……stdin
0>&1
stdout
编辑
stty
更改终端参数。为此,它必须发出对与终端相对应的文件句柄进行操作的系统调用。默认情况下,这是stdin
,如手册页所述:
-F, --file=DEVICE
open and use the specified DEVICE instead of stdin
我不确定什么样的例子会对你有帮助......
答案2
如果你输入,man stty
你将获得文档stty
,其中包括
[-]onlcr
将换行符转换为回车符-换行符
stty
重定向的原因是标准输入,但只有标准输出在运行命令时可用。