Bash 5.0 包含一个新-f
选项wait
:[1]
j. The `wait' builtin now has a `-f' option, which signfies to wait until the
specified job or process terminates, instead of waiting until it changes
state.
wait -f $pid
与默认值相比,它有什么作用wait $pid
?在什么条件下-f
需要该选项?
答案1
更改描述是准确的,但有些模糊,因为wait
通常认为等待进程完成。
尝试这个:
sleep 60&
wait %1
然后在另一个终端,
kill -STOP ${pid}
替换${pid}
为sleep
的 pid (作为放在后台时的输出)。wait
将退出,因为作业的状态发生了变化。
使用 时-f
,wait
将等待作业或进程真正终止;上面使用的,它不会退出kill -STOP
,并且会等待进程恢复(kill -CONT
)并完成运行。