连续运行程序观察 pid 的变化

我的测试环境是 wsl,系统是空载的。理想的情况是两次程序的 pid 连续:

$ grep -i '^pid:' /proc/self/status
Pid:    3355
$ grep -i '^pid:' /proc/self/status
Pid:    3356

但实际上我发现我每次回车(不运行 grep)都会导致 Pid +7,运行 grep 时会 +8(合理,毕竟 grep 本身也是一个进程)。

我以前以为是 bash 在创建子进程的时候会多运行一些东西,所以每次创建的子进程 Pid 不连续。现在发现回车都会导致 Pid 增长,才发现是 PS1 变量的问题。我的 PS1 变量包含了一些代码,用来让 prompt 更加美观。

用以下方式修改 PS1

PS1='$ '

现在果然 pid 就是连续了。