2013-09-25 72 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命令,其行爲有所不同,例如將輸出直接寫入終端而不是標準錯誤。