2013-09-25 75 views
1

我正在尝试测量程序需要完成的时间,当我在同一时间启动它8次时。停止时间并用bash启动几个程序

现在我真的很想写一个bash或者是用不同的参数多次启动程序并测量时间,直到所有这些完成。 我想我会在最后简单地使用& 8次开始我的程序,但是我不知道如何知道他们何时停止。

回答

0

使用jobs看到什么仍然在运行,如果需要8,你可以做

if jobs | wc -l < 8 then command & 

不工作的代码,但你的想法

0

可以使用time命令来衡量的时间消耗一个程序,所以也许像

#!/bin/bash 
time yourprogram withoneargument 
time yourprogram with three arguments 
...etc 

干杯,

1

您可以使用wait等待后台作业完成。

#!/bin/sh 
program & 
program & 
wait 

将等到program的两个实例退出。

0

Bystrup先生提供了time命令,该命令将执行您的程序。 Politowski先生和用户2814958提供&运营商,该运营商将在后台运行程序,允许您同时启动它们。如果将这些结合在一起,那么除了从time输出的不同命令的输出将混乱以外,您很可能会发现哪些输出与哪个命令相关。为了解决这个问题

一种方式是分流输出到不同的文件:

/usr/bin/time program1 2>/tmp/program1.time & 
/usr/bin/time program2 2>/tmp/program2.time & 

请注意,我重定向标准错误(文件描述符2)进入文件; time将其输出写入标准错误而不是标准输出。还请注意我使用time的完整路径。一些shell有一个内置的time命令,其行为有所不同,例如将输出直接写入终端而不是标准错误。