bash:禁用新进程 PID 消息

bash:禁用新进程 PID 消息

它可能看起来像这样:[2] 2847。我猜第一个数字只是从 shell 创建的进程的枚举。第二个是PID。不管怎样,我从不关心这些信息,所以看到这些信息很烦人。有办法把它关掉吗? (我发现set +bm禁用.bashrc了进程终止消息。)

答案1

第一个数字是职位索引;与工作相关的命令(jobsfg等)使用它们。例如,如果你得到输出[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.c762

DESCRIBE_PID (last_made_pid);

相关内容