标准输入和标准输出重定向

标准输入和标准输出重定向

有一份声明

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 输入连接到其他源,那么这实际上很重要……stdin0>&1stdout

编辑

stty更改终端参数。为此,它必须发出对与终端相对应的文件句柄进行操作的系统调用。默认情况下,这是stdin,如手册页所述:

  -F, --file=DEVICE
          open and use the specified DEVICE instead of stdin

我不确定什么样的例子会对你有帮助......

答案2

如果你输入,man stty你将获得文档stty,其中包括

[-]onlcr将换行符转换为回车符-换行符

stty重定向的原因是标准输入,但只有标准输出在运行命令时可用。

相关内容