我尝试使用在非交互式shell中运行的bash脚本并行运行多个作业。
我不希望主脚本终止,直到所有子进程也终止。
以下是我尝试做的一个例子:
while (( "$#" )); do
some_long_task "$1" &
done
for job in `jobs -p`; do
wait $job || echo 'Could not wait for job: ' $job
done
给我bash:no job control in this shell
作为错误,并在完成工作之前终止。
如何让bash等待每个子进程?
答案 0 :(得分:2)
wait
等待所有子进程,这似乎正是您所需要的。似乎在禁用作业控制的情况下工作正常。
答案 1 :(得分:0)
你可以有这样的东西
while (( "$#" )); do
some_long_task "$1" &
eval pid='$pid $!'
done
wait $pid
由于