4

如果脚本启动一个进程并在收集 PID 后立即使用$!,如果系统上的其他地方在脚本启动进程和脚本收集 PID 之间的那一刻启动进程,它会得到错误的 PID$!吗?

4

1 回答 1

3

$!特殊变量保存当前 shell 启动的最后一个子进程的 PID 。它永远不会被系统上其他一些进程中发生的操作修改。

$!如果您自己在收集值之前启动一个新的子进程,那只会是错误的,因为它每次都会被覆盖。例如,这里“processX”的PID丢失,“processY”的PID被打印:

processX &
processY &

echo Child process PID: $!
于 2013-10-25T15:31:04.837 回答