LINUX 标准错误输出重定向

LINUX 标准错误输出重定向,第1张

用途:不挂断地运行命令。

语法:nohup Command [ Arg … ] [ &]

无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。

如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。

如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。

退出状态:该命令返回下列出口值:

126 可以查找但不能调用 Command 参数指定的命令。

127 nohup 命令发生错误或不能查找由 Command 参数指定的命令。

否则,nohup 命令的退出状态是 Command 参数指定命令的退出状态。

用途:在后台运行

一般两个一起用

3.为什么呢 2>&1 要写在后面?

首先是command >file将标准输出重定向到file中, 2>&1 是标准错误拷贝了标准输出的行为,也就是同样被重定向到file中,最终结果就是标准输出和错误都被重定向到file中。

2>&1 标准错误拷贝了标准输出的行为,但此时标准输出还是在终端。>file 后输出才被重定向到file,但标准错误仍然保持在终端。

用strace可以看到:

这个命令中实现重定向的关键系统调用序列是:

open(file) == 3

dup2(3,1)

dup2(1,2)

这个命令中实现重定向的关键系统调用序列是:

dup2(1,2)

open(file) == 3

dup2(3,1)

注意:0 是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。

这里的2和>之间不可以有空格,2>是一体的时候才表示错误输出。

Linux Shell 环境中支持输入输出重定向,用符号"<"和">"来表示。0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出,比如 2>a.txt 表示将错误信息输出到文件a.txt中。

同时,还可以在这三个标准输入输出之间实现重定向,比如将错误信息重定向到标准输出,可以用 2>&1来实现。

Linux下还有一个非凡的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。

假如想要正常输出和错误信息都不显示,则要把标准输出和标准错误都重定向到/dev/null, 例如:

# ls 1>/dev/null 2>/dev/null

还有一种做法是将错误重定向到标准输出,然后再重定向到 /dev/null,例如:

# ls >/dev/null 2>&1

注重:此处的顺序不能更改,否则达不到想要的效果,此时先将标准输出重定向到 /dev/null,然后将标准错误重定向到标准输出,由于标准输出已经重定向到了/dev/null,因此标准错误也会重定向到/dev/null,于是一切静静静:-)

另外 :

make >&make_log

意思是把标准输出和错误输出都重定向, make>out 只重定向标准输出!!!!!

>log 表示把标准输出重新定向到文件log中

>&log 表示把标准输出和错误输出都定向到文件log中,相当于 >log 2>&1

错误输出应该被写至标准错误(stderr),缺省情况下标准错误同样也是终端(也就是用户的屏幕)

如果已将标准输出重定向至某一位置,也可以将标准错误重定向至同一位置。例如:

$ command 2>&1

在这个例子中,符号“2>&1”表示“将标准错误发送至标准输出被重定向的任何位置”,因此错误和正常的消息都将在屏幕上显示。当 然,这是多余的,因为下面简单的调用

$ command

将做同样的事。在标准输出已被重定向至其它源,而您希望在同一命令行上将标准错误也写至同一目的地时,该特性就非常有用。例如:

$ command >output_file 2>&1

在这个例子中,已首先将标准输出重定向至 output_file;因此“2>&1”将使标准错误也被重定向至 output_file。

你都不说你弄的什么东西,怎么 *** 作的,什么地方 *** 作的。软件环境是什么,你动了什么。

没法帮你。

-----------------

没有提示错误,而是仅仅是因为程序的编译依赖而提示放弃。

应该不影响你的使用,可以忽略这些提示。

不过一个正常的代码不应该出现这个问题才对……

你多 make 几遍,如果后面没有提示就绝对没事了。如果还提示,那你就要完全看一遍编译过程所有的提示信息,看看有没有真正的错误。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8659668.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-19
下一篇2023-04-19

发表评论

登录后才能评论

评论列表(0条)

    保存