可以持续PID变量$!是错的?

时间:2013-10-25 15:17:06

标签: linux bash process pid

如果脚本启动进程并在使用$!收集PID后立即启动进程,那么如果系统中的其他位置在脚本启动进程和当脚本使用$!

收集PID时

1 个答案:

答案 0 :(得分:2)

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

如果你自己在收集值之前启动一个新的子进程,那么

$!只会是错误的,因为它每次都会被覆盖。例如,这里丢失了“processX”的PID并打印了“processY”的PID:

processX &
processY &

echo Child process PID: $!