我正在尝试测量一个程序在我同时启动8次时需要完成的时间。
现在我真的想写一个bash或者用不同参数多次启动程序的东西,并测量所有这些参数完成之前的时间。
我想我会设法在最后使用&
启动我的程序8次,但后来我不知道怎么知道他们什么时候停止。
答案 0 :(得分:1)
您可以使用wait
等待后台作业完成。
#!/bin/sh
program &
program &
wait
将等到program
的两个实例退出。
答案 1 :(得分:0)
使用jobs
查看仍在运行的内容,如果您需要8,则可以
if jobs | wc -l < 8 then command &
不工作的代码,但你明白了
答案 2 :(得分:0)
您可以使用time
命令来衡量程序的时间消耗,所以可能类似
#!/bin/bash
time yourprogram withoneargument
time yourprogram with three arguments
...etc
干杯,
答案 3 :(得分:0)
先生。 Bystrup提供time
命令,该命令将执行程序。 Politowski先生和user2814958提供&
运算符,它将在后台运行程序,允许您同时启动它们。如果你把它们组合在一起,你就会大部分都在那里,除了来自time
的输出对于不同的命令将是混乱的,并且很难分辨哪个输出与哪个命令有关。
解决此问题的一种方法是将输出分流到不同的文件中:
/usr/bin/time program1 2>/tmp/program1.time &
/usr/bin/time program2 2>/tmp/program2.time &
请注意,我正在将标准错误(文件描述符2)重定向到文件中; time
将其输出写入标准错误而不是标准输出。另请注意我使用time
的完整路径。有些shell有一个内置的time
命令,其行为不同,例如直接将输出写入终端而不是标准错误。