如果脚本启动进程并在使用$!
收集PID后立即启动进程,那么如果系统中的其他位置在脚本启动进程和当脚本使用$!
?
答案 0 :(得分:2)
$!
特殊变量保存当前shell启动的最后一个子进程的PID。它永远不会被系统中其他地方的某些其他进程中发生的操作所修改。
$!
只会是错误的,因为它每次都会被覆盖。例如,这里丢失了“processX”的PID并打印了“processY”的PID:
processX &
processY &
echo Child process PID: $!