重定向标准错误到标准输出 是啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重定向标准错误到标准输出 是啥意思相关的知识,希望对你有一定的参考价值。

参考技术A 命令将错误消息发送到标准错误输出,这样就可以避免与发送到标准输出的信息混淆在一起。
与处理标准输出一样,默认情况下,标准错误输出发送到屏幕上。除非重定向标准输出和标准错误输出中的某一个,否则不能区分命令的输出到底是标准输出还是标准错误输出。
我暂时这么认为,从我跑matlab的角度来看,由于使用nohup数出我们看不出是红色还是黑色,标准错误输出,和标准输出分别表示系统提示的错误,和命令要求的输出。

Shell 环境中的输入输出重定向

Linux Shell 环境中的输入输出重定向,用符号<和>来表示。0、1和2分别表示标准输入、标准输出和标准错误。

1.重定向标准输出到文件:
cat fo > foo.txt
2.重定向标准错误到文件
cat fo 2> foo.txt
3.重定向标准输出到标准错误
cat fo 1>&2
4.重定向标准错误到标准输出
cat fo 2>&1
5.重定向标准输出,标准错误到同一个文件
cat fo > fo.txt 2>&1或cat foo &> foo.txt
这里第个顺序很重要,先把标准输出重定向到文件,再把标准错误输出到标准输出,因为标准输出已经重定向到文件,所以标准错误与重定向到文件。
>&与&>效果相同
 
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

以前经常看到 & 1, &2这样的符号,但是不知道是什么意思。

系统中有12个文件描述符,0,1,2是标准输入,输出和错误。可以任意使用文件描述符3到9

 

文件文件描述符
输入文件——标准输入 0
输出文件——标准输出 1
错误输出文件——标准错误 2

 

 

标准输入:0

缺省是键盘输入,也可以是文件或其他命令的输出

 

标准输出:1

缺省是输出到终端,也可以输出到文件

 

标准错误:2

命令错误信息的输出,缺省输出到终端,也可以输出到文件

 

如果没有特别指定文件描述符,命令将使用缺省的文件描述符,键盘输出,终端输出

 

在输入一个cmd后,如果没有指定标准输出或错误输出,那么会将所有的输出都显示在屏幕上,

如果命令为:cmd > result.out 该命令等价为 cmd 1>result.out,会将标准输出重定向到result.out文件中,错误输出显示在屏幕上;

如果命令为:cmd 2>result.out ,会将错误输出重定向到result.out文件,标准输出显示在屏幕上;

如果命令为:cmd >result.out 2>&1,会将标准输出和错误输出都重定向到result.out文件,屏幕上不会有输出。

 


以上是关于重定向标准错误到标准输出 是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

在linux源代码中((val)=((val)&15) + ((val)>>4)*10)是啥意思?

Linux中Shell重定向

linux将标准输出和标准错误输出都重定向到一个文件?

怎样去掉提示:nohup:重定向标准错误到标准输出

linux中报错“把输出追加到nohup.out”啥意思?

如何将标准输出和标准错误重定向到 Python 中的记录器