首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bash中的并行测试,使用bash或并行GNU

bash中的并行测试,使用bash或并行GNU
EN

Stack Overflow用户
提问于 2015-01-22 18:16:45
回答 2查看 131关注 0票数 2

我已经进行了grunt测试,它在MAC机器上的Jenkins中运行,我需要在lineman got和lineman spe并行化后,它们将运行分布式。

代码语言:javascript
复制
 lineman grunt spe
 lineman grunt spe-table
 lineman grunt distributive

我试着去做

代码语言:javascript
复制
 lineman grunt spe >spe.out 2>spe.err &
 lineman grunt spe-table >spe-table.out 2>spe-table.err &
 lineman grunt distributive

它可以工作,但当测试运行时,分布式任务也会运行,这不是一个好的决定。

作为一个好主意,我试着像这样运行并行GNU:

代码语言:javascript
复制
parallel -j 2 "lineman grunt spe" "lineman grunt spe-table" 
lineman grunt dist

但是没有发生任何事情,只需在jenkins输出中查看此字符串。我怎么解决它呢?

EN

回答 2

Stack Overflow用户

发布于 2015-01-22 18:33:04

您可以简单地在前两个命令之后使用wait命令-这将强制外壳程序等待所有后台任务完成,然后再继续。

代码语言:javascript
复制
lineman grunt spe >spe.out 2>spe.err &
lineman grunt spe-table >spe-table.out 2>spe-table.err &
wait
lineman grunt distributive

在这种情况下,直到两组测试都完成后,才会运行最后一个命令。

票数 1
EN

Stack Overflow用户

发布于 2015-01-23 05:44:06

代码语言:javascript
复制
parallel ::: "lineman grunt spe" "lineman grunt spe-table" 

或者:

代码语言:javascript
复制
parallel lineman grunt ::: spe spe-table

这是GNU并行的一些最简单的用法,所以我认为你没有遵循“man Parallel”中的读者指南:

读者指南

从观看介绍视频开始,快速介绍:http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

然后看看选项列表后面的示例。这将使您了解GNU parallel的能力。

然后花一个小时浏览教程(man parallel_tutorial)。你的命令行会因此而爱上你。

最后,如果您有尚未涵盖的特殊需求,您可能需要查看本手册的其余部分。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28086218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档