有没有一个简单的方法来限制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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。