如果我在后台运行一个命令&,像这样:
sleep 2 &
Run Code Online (Sandbox Code Playgroud)
命令完成后,我得到“完成”。如何避免看到“完成”消息?
Dig*_*oss 38
执行内置的shell:
$ set +m
Run Code Online (Sandbox Code Playgroud)
这是通过关闭“监控模式”来实现的,因此 shell 不会报告终止后台作业。
尽管在子shell中运行命令,例如:
$ (sleep 2&)
Run Code Online (Sandbox Code Playgroud)
... ...将也禁用的消息,它工作的唯一原因是因为监控模式在默认情况下只在交互shell启用。也就是说,子外壳通过运行具有自动“set +m”的额外外壳来避免该消息。
小智 8
我想澄清两个较早的答案。如果您想要的不是在您的 shell 中从任何命令看到 Done 消息,这set +m是要走的路。只需将它放在您的 .profile 和/或 .bashrc 中即可。但是请注意,如果您键入:
set +m
sleep 2 &
set -m
Run Code Online (Sandbox Code Playgroud)
并且 sleep 在 final 之后结束set -m,您仍然会收到 done 消息。
如果您想禁用单个命令调用的消息,则可以使用 subshell 技术(sleep 2 &)。
set +m老实说,我只知道,所以 +1 给 Wooble 以启发我。但是,值得注意的是,您想要两种解决方案中的哪一种取决于您要尝试做什么。
| 归档时间: |
|
| 查看次数: |
6799 次 |
| 最近记录: |