与默认行为相比,“-f”选项对“wait”有何作用?

与默认行为相比,“-f”选项对“wait”有何作用?

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将退出,因为作业的状态发生了变化。

使用 时-fwait将等待作业或进程真正终止;上面使用的,它不会退出kill -STOP,并且会等待进程恢复(kill -CONT)并完成运行。

相关内容