【发布时间】:2010-10-29 00:46:00
【问题描述】:
我有一些 Perl 代码为多个参数执行 shell 脚本,为了简化,我假设我的代码如下所示:
for $p (@a){
system("/path/to/file.sh $p&");
}
在那之后我想做更多的事情,但我找不到等待所有子进程完成后再继续的方法。
将代码转换为使用 fork() 会很困难。没有更简单的方法吗?
【问题讨论】:
-
您需要 file.sh 的实际返回码吗?您可以更改脚本以便在完成时写入文件吗?
-
为什么将代码转换为 fork 会很困难?隐藏子程序中的所有细节。你甚至可以重新定义 system() 来调用你的新子程序。
-
我可能只是将此部分拆分为一个单独的脚本来执行分叉,并从系统调用中调用它...
标签: linux perl wait child-process