我编写了两个shell脚本a.sh
和b.sh
。在a.sh
和b.sh
中,我有一个无限的for循环,它们将一些输出输出到终端。我想写另一个同时调用a.sh
和b.sh
的脚本,但我希望用户立即重新获得对终端的控制,而不是让脚本无限运行,我希望将输出隐藏在终端中。
发布于 2012-02-08 16:56:22
将输出重定向到如下所示的文件:
./a.sh > somefile 2>&1 &
这会将stdout和stderr重定向到同一个文件。如果要将stdout和stderr重定向到两个不同的文件,请使用以下命令:
./a.sh > stdoutfile 2> stderrfile &
如果您不关心标准输出和/或标准错误,则可以将/dev/null
用作这两个文件中的一个或两个。
有关重定向的详细信息,请参阅bash manpage。
发布于 2015-04-10 03:57:38
抱歉,这有点晚了,但我找到了一个理想的解决方案,适用于那些你不需要任何标准或错误输出的简单命令(归功于:http://felixmilea.com/2014/12/running-bash-commands-background-properly/)
这会将输出重定向到null,并保持屏幕清晰:
command &>/dev/null &
发布于 2012-02-08 16:55:36
如果它们与包含以下内容的脚本位于同一目录中:
./a.sh > /dev/null 2>&1 &
./b.sh > /dev/null 2>&1 &
最后的&
让你的脚本在后台运行。
> /dev/null 2>&1
部分并不是必需的-它会重定向stdout和stderr流,这样您就不必在终端上看到它们了,对于具有大量输出的嘈杂脚本,您可能希望这样做。
https://stackoverflow.com/questions/9190151
复制相似问题