Beh*_*ari 101 linux scripting sh background-process
我写了两个shell脚本a.sh和b.sh. 在a.sh和b.sh中,我有一个无限的for循环,他们将一些输出打印到终端.我想编写另一个调用a.sh和b.sh的脚本,但我希望用户立即重新获得对终端的控制,而不是让脚本无限运行,我想在终端中隐藏输出.
Geo*_*rge 201
使用nohup
,如果你的后台作业需要较长时间才能完成,或者你只是使用SecureCRT的或类似的东西登录服务器.
重定向标准输出和标准错误,以/dev/null
忽略输出.
nohup /path/to/your/script.sh > /dev/null 2>&1 &
Run Code Online (Sandbox Code Playgroud)
Ada*_*man 31
将输出重定向到这样的文件:
./a.sh > somefile 2>&1 &
Run Code Online (Sandbox Code Playgroud)
这会将stdout和stderr重定向到同一个文件.如果要将stdout和stderr重定向到两个不同的文件,请使用以下命令:
./a.sh > stdoutfile 2> stderrfile &
Run Code Online (Sandbox Code Playgroud)
/dev/null
如果您不关心stdout和/或stderr,则可以将其用作一个或两个文件.
有关重定向的详细信息,请参阅bash联机帮助页.
Dan*_*eri 20
对不起,这有点晚了,但找到了理想的解决方案,你不需要任何标准或错误输出的正确命令(信用到期的地方:http://felixmilea.com/2014/12/running-bash-commands-background - 正确地/)
这会将输出重定向到null并保持屏幕清晰:
command &>/dev/null &
Run Code Online (Sandbox Code Playgroud)
Mic*_*nen 12
如果它们与包含以下内容的脚本位于同一目录中:
./a.sh > /dev/null 2>&1 &
./b.sh > /dev/null 2>&1 &
Run Code Online (Sandbox Code Playgroud)
将&
在到底是什么让你的脚本在后台运行.
该> /dev/null 2>&1
部分不是必需的 - 它重定向stdout和stderr流,因此您不必在终端上看到它们,您可能希望为具有大量输出的嘈杂脚本执行此操作.
Tom*_*ale 12
在子 shell 中运行以删除通知并关闭 STDOUT 和 STDERR:
(&>/dev/null script.sh &)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
287352 次 |
最近记录: |