当我在后台运行进程时,进程 ID 会显示在命令提示符中。例如:
$ gvim 1 &
[3] 9584
现在,当我运行另一个进程时,前一个进程的状态也会显示。例如:
$ gvim 2 &
[4] 9500
[3] Done gvimBackground 1
有什么办法可以抑制显示当前PID和与先前进程相关的数据吗?
答案1
把你的整个命令,包括&
,在括号内:
(迅速的)$
gvim 1 &
[3] 9584
(迅速的)$其他一些命令
[3] Done gvimBackground 1
(迅速的)$(gvim 1 &
)
<——(沉默)
(迅速的)$
答案2
与其说当您开始一项新作业时会报告其他作业的状态,不如说默认情况下仅在显示提示之前报告状态的更改。因此,就您而言,它会在第一次机会时报告,即在您开始第二项工作后显示的提示时报告。
您可以通过发出以下命令使作业报告同步:
set -b
在这种情况下,有关后台作业完成或暂停的报告会在发生时立即完成,您无需等待下一个提示。
如果您不想收到作业完成的通知,正如 @Scott 所说,您可以将其作为 subshell 的作业启动(job &)
,或者disown
使用disown
命令(或使用 zsh,将其启动为job &!
),但请注意,这意味着您无法将其放回前台或使用作业编号杀死它。