可能的解决方法是使用进程组并在wait后使用kill来杀死剩余的子进程。
例如,假设我们有3个进程需要等待完成:
command1 &
command2 &
command3 &
wait
这种方式无法确保在运行此代码时所有进程都会退出。如果你只想等待进程1和进程2完成,则可以将它们放入一个进程组中,并在wait后使用kill命令来杀死属于该组的任何剩余进程:
command1 & # 进程组ID为$!
command2 & # 进程组ID为$!
command3 &
# 等待进程1和进程2完成并杀死任何属于进程组$!的进程
wait
kill -- -"$!"
下一篇:Bash脚本菜单选项方括号