2012-10-18 54 views
0

我正在嘗試使用bash內建的time來衡量一個命令執行需要多長時間。如何獲取定時命令的返回類型?

問題是從定時命令獲取返回碼。查看後

help time 

看來時間總是返回0而不是執行命令的返回碼。有一些方法可以獲得定時命令的返回狀態嗎?

回答

1

我檢查help time,它顯示幫助消息timetimes

對於time

Exit Status: 
The return status is the return status of PIPELINE. 

對於times

Exit Status: 
Always succeeds. 

有沒有可能是你看錯?

+0

+1是的,我只是跳過了幫助頁面,並閱讀有關'times'退出狀態:-)。 – helpermethod

3

man time給我:

如果程序正常退出,時間的返回值是它執行和測量的程序的 返回值。否則,返回值爲128加上 導致程序停止 或終止的信號的編號。

注意有一個外殼,內置time/usr/bin/time

/usr/bin/time false 
/usr/bin/time true 

給我適當的(1和0)錯誤代碼。

1
time lsa 
-bash: lsa: command not found 

real 0m0.001s 
user 0m0.000s 
sys 0m0.000s 

echo $? 
127 

time ls 
aa.aa 

real 0m0.564s 
user 0m0.000s 
sys 0m0.001s 

echo $? 
0 

127如果失敗

相關問題