Bash:限制并发作业的数量?

前端之家收集整理的这篇文章主要介绍了Bash:限制并发作业的数量?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有一个简单的方法来限制bash中并发作业的数量?我的意思是制作&当在后台运行n个并发作业时阻塞.

我知道我可以用ps |来实现这个grep式的技巧,但是有更简单的方法吗?

如果您安装了GNU Parallel http://www.gnu.org/software/parallel/,可以这样做:
parallel gzip ::: *.log

每个cpu内核将运行一个gzip,直到所有日志文件都被gzip压缩.

如果它是较大循环的一部分,则可以使用sem:

for i in *.log ; do
    echo $i Do more stuff here
    sem -j+0 gzip $i ";" echo done
done
sem --wait

它会做同样的,但是给你一个机会,为每个文件做更多的东西.

如果GNU Parallel并没有为您的发行版打包,您可以通过以下方式安装GNU Parallel:

(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash

它将下载,检查签名,并且如果无法在全球安装,则进行个人安装.

观看GNU Parallel的简介视频,了解更多信息:
https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

猜你在找的Bash相关文章