它可能看起来像这样:[2] 2847
。我猜第一个数字只是从 shell 创建的进程的枚举。第二个是PID。不管怎样,我从不关心这些信息,所以看到这些信息很烦人。有办法把它关掉吗? (我发现set +bm
禁用.bashrc
了进程终止消息。)
答案1
第一个数字是职位索引;与工作相关的命令(jobs
、fg
等)使用它们。例如,如果你得到输出[2] 2847
,你可以运行fg 2
该作业到前台。
据我通过浏览源代码得知,没有办法禁用该消息。它所做的一项检查是确保 shell 是交互式的,因此如果您在非交互式 shell 中运行该命令,您将不会获得该输出。例如,您可以在子 shell 中运行它:
$ (your_command &)
这相当于在完全不同的 shell 中运行命令,因此可能会产生其他不良副作用
如果您愿意修补bash
,您可以删除该特定输出。在 bash 4.2 中,它jobs.c
在线1428
:
fprintf (stderr, "[%d] %ld\n", job + 1, (long)pid);
在其他情况下它会被调用;如果您只是想让它在这种特殊情况下消失,您可以注释掉这一execute_cmd.c
行762
:
DESCRIBE_PID (last_made_pid);