Bash 等待进程结束
我想同时运行Bash 等待进程结束,bash,process,Bash,Process,我想同时运行n进程(在我的模拟案例中),因此我使用和如下: for i in {1..50}; do run simulation & done 每次模拟完成后,我需要解析它的输出文件。我的问题是如何知道流程何时完成,以及如何在流程完成后调用函数 编辑:我想我需要做的是调用一个函数,在模拟完成后调用它并解析它的文件。在我看来,这个函数必须是一个子进程,对吗 谢谢 使用wait内置实用程序。有关更多信息,请参见manbash。在最简单的情况下,wait本身将等待所有子进程终止。
n
进程(在我的模拟案例中),因此我使用和如下:
for i in {1..50};
do
run simulation &
done
每次模拟完成后,我需要解析它的输出文件。我的问题是如何知道流程何时完成,以及如何在流程完成后调用函数
编辑:我想我需要做的是调用一个函数,在模拟完成后调用它并解析它的文件。在我看来,这个函数必须是一个子进程,对吗
谢谢 使用wait
内置实用程序。有关更多信息,请参见manbash
。在最简单的情况下,wait
本身将等待所有子进程终止。使用wait
内置实用程序。有关更多信息,请参见manbash
。在最简单的情况下,wait
本身将等待所有子进程终止。由于您似乎不想/不需要等待所有模拟完成,您只需执行以下操作:
for i in {1..50};
do
{ run simulation && parse output; } &
done
由于您似乎不想/不需要等待所有模拟完成,您可以简单地执行以下操作:
for i in {1..50};
do
{ run simulation && parse output; } &
done
wait
内置程序等待所有子项完成。如果要为完成的每个作业执行命令,可以使用trap
。在您的情况下,wait
和trap
的组合应该可以工作:
trap parse_output SIGCHLD
for i in {1..50}; do
run simulation &
done
wait
wait
内置程序等待所有子项完成。如果要为完成的每个作业执行命令,可以使用trap
。在您的情况下,wait
和trap
的组合应该可以工作:
trap parse_output SIGCHLD
for i in {1..50}; do
run simulation &
done
wait