0

我一直没能彻底简明我的问题,这意味着搜索引擎不能给我一个直接的答案,而且我过去多次使用这个网站,所以是时候问我自己的问题了。

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

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

上面,我将 COUNT 变量设置为 0,并在 for 循环中附加 1(与运行 convert 语句的 for 循环相同)。一旦达到(在这种情况下)3,(处理器数量+1),它将“等待”直到孩子完成,然后继续。

这一切都很好,但假设我所有的图像都是 48k,除了 1 是 250mb(不是真的,但为了解释的目的)。在某个地方,脚本会在其余的可以运行时等待那张图片。

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

感谢您的任何建议!

4

0 回答 0