2013-08-20 49 views
5

如何測量我的腳本的運行時間是這樣的:在機身尺寸bash腳本的運行與和參數

#! /bin/bash 
start1=`date +%s` 
./a & 
./a & 
./a & 
./a & 
./a & 

end=`date +%s` 
runtime=$((end-start1)) 
echo "$runtime" 

測量的時間是0,因爲在後臺,並在所有運行的命令同時 我該怎麼辦?

回答

5

使用wait命令等待進程完成,測量時間

#! /bin/bash 
start1=`date +%s` 
./a & 
./a & 
./a & 
./a & 
./a & 

wait # <---------------- 

end=`date +%s` 
runtime=$((end-start1)) 
echo "$runtime" 

之前,您還可以使用time命令更好,更準確的結果:

time { 
    ./a & 
    ./a & 
    ./a & 
    ./a & 
    ./a & 

    wait # <---------------- 
} 
+1

+1我不知道的時間命令,但要注意你的鏈接是錯誤的:你在這裏調用的'時間'是[一個bash內置關鍵字](http://www.gnu。 org/software/bash/manual/html_node/Pipelines.html),而不是['/ usr/bin/time'可執行文件](http://linux.die.net/ma n/1 /次)你鏈接到。 '/ usr/bin/time'不支持管道或大括號。 –

+0

@JeffBowman謝謝你指出這一點。我沒有意識到差異 – user000001