为了简化起见,我有一些Perl代码可以对多个参数执行shell脚本,我只是假设我有如下代码:
for $p (@a){
system("/path/to/file.sh $p&");
}
在那之后,我想做更多的事情,但是我无法找到一种方法来等待所有子进程完成再继续。
将代码转换为使用fork()将很困难。有没有更简单的方法?
使用fork / exec / wait还不错:
my @a = (1, 2, 3);
for my $p (@a) {
my $pid = fork();
if ($pid == -1) {
die;
} elsif ($pid == 0) {
exec '/bin/sleep', $p or die;
}
}
while (wait() != -1) {}
print "Done\n";
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句