多个等待命令

时间:2013-06-25 01:41:44

标签: bash for-loop wait background-process child-process

我无法彻底简明我的问题,这意味着搜索引擎无法给我一个直接的答案,而且我过去曾经多次使用过这个网站,所以我该问自己的问题了。

所以,我有一个脚本(在bash中),它贯穿我的图片列表并确定它们是否需要调整大小,这很有效。我希望一次最多运行3个。这就是我所拥有的。

if [ "$COUNT" = "$(echo "$(cat /proc/cpuinfo|grep processor|wc -l)+1"|bc)" ] ;then
    wait
    COUNT="0"
fi

在上面,我将COUNT变量设置为0,并在for循环中追加1(对于运行convert语句的循环也是如此)。一旦它命中(在这种情况下)3,(处理器数量+ 1),它将'等待'直到孩子完成,然后继续。

这一切都很精致,但是让我说我​​的所有图像都是48k,除了1这是250mb(不是真的,但是出于解释目的)。在某个地方,当其余部分正在运行时,脚本将等待那张图片。

最后,我的问题。鉴于上面的上下文和背景信息,是否有一种方法(使用'wait'命令或不使用)使脚本停在3(处理器+ 1)子节点,并且只执行1作为一个完成?在上下文中,有没有办法让2张图片在250mb图片正在运行时运行,然后在完成后有3张图片?与我现在所做的相反,只需等待所有3,然后再执行3次。

感谢您提出的所有建议!

0 个答案:

没有答案
相关问题