首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在后台运行命令,但没有得到任何输出?

如何在后台运行命令,但没有得到任何输出?
EN

Stack Overflow用户
提问于 2012-02-08 16:53:27
回答 6查看 340.9K关注 0票数 137

我编写了两个shell脚本a.shb.sh。在a.shb.sh中,我有一个无限的for循环,它们将一些输出输出到终端。我想写另一个同时调用a.shb.sh的脚本,但我希望用户立即重新获得对终端的控制,而不是让脚本无限运行,我希望将输出隐藏在终端中。

EN

回答 6

Stack Overflow用户

发布于 2012-02-08 16:56:22

将输出重定向到如下所示的文件:

代码语言:javascript
复制
./a.sh > somefile 2>&1 &

这会将stdout和stderr重定向到同一个文件。如果要将stdout和stderr重定向到两个不同的文件,请使用以下命令:

代码语言:javascript
复制
./a.sh > stdoutfile 2> stderrfile &

如果您不关心标准输出和/或标准错误,则可以将/dev/null用作这两个文件中的一个或两个。

有关重定向的详细信息,请参阅bash manpage

票数 41
EN

Stack Overflow用户

发布于 2015-04-10 03:57:38

抱歉,这有点晚了,但我找到了一个理想的解决方案,适用于那些你不需要任何标准或错误输出的简单命令(归功于:http://felixmilea.com/2014/12/running-bash-commands-background-properly/)

这会将输出重定向到null,并保持屏幕清晰:

代码语言:javascript
复制
command &>/dev/null &
票数 28
EN

Stack Overflow用户

发布于 2012-02-08 16:55:36

如果它们与包含以下内容的脚本位于同一目录中:

代码语言:javascript
复制
./a.sh > /dev/null 2>&1 &
./b.sh > /dev/null 2>&1 &

最后的&让你的脚本在后台运行。

> /dev/null 2>&1部分并不是必需的-它会重定向stdout和stderr流,这样您就不必在终端上看到它们了,对于具有大量输出的嘈杂脚本,您可能希望这样做。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9190151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档