我正在嘗試測量程序需要完成的時間,當我在同一時間啓動它8次時。停止時間並用bash啓動幾個程序
現在我真的很想寫一個bash或者是用不同的參數多次啓動程序並測量時間,直到所有這些完成。 我想我會在最後簡單地使用&
8次開始我的程序,但是我不知道如何知道他們何時停止。
我正在嘗試測量程序需要完成的時間,當我在同一時間啓動它8次時。停止時間並用bash啓動幾個程序
現在我真的很想寫一個bash或者是用不同的參數多次啓動程序並測量時間,直到所有這些完成。 我想我會在最後簡單地使用&
8次開始我的程序,但是我不知道如何知道他們何時停止。
使用jobs
看到什麼仍然在運行,如果需要8,你可以做
if jobs | wc -l < 8 then command &
不工作的代碼,但你的想法
可以使用time
命令來衡量的時間消耗一個程序,所以也許像
#!/bin/bash
time yourprogram withoneargument
time yourprogram with three arguments
...etc
乾杯,
您可以使用wait
等待後臺作業完成。
#!/bin/sh
program &
program &
wait
將等到program
的兩個實例退出。
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
命令,其行爲有所不同,例如將輸出直接寫入終端而不是標準錯誤。