2012-04-22 34 views
1

使用bash,如何存儲我的程序在一個變量中執行所花費的時間以及我的程序在另一個變量中的輸出所花費的時間?我知道time發送它的輸出到stdout;我已經得到了最接近的是這樣的:將時間和程序輸出存儲到單獨的變量中

exec 3>&1 4>&2 
time_output=$({ time echo hello world 1>&3 2>&4; } 2>&1) 

但「世界你好」被打印到終端。如何捕捉「hello world」到另一個變量?

我也試過:

prog_output=$(time_output=$({ time echo hello world 1>&3 2>&4; } 2>&1)) 

但這不起作用。 prog_output不包含任何內容,並且「hello world」被打印到終端。

+1

http://mywiki.wooledge.org/BashFAQ/032 – ormaaj 2012-04-22 13:06:03

+0

[捕獲的bash的時間輸出在腳本變量]的可能重複(http://stackoverflow.com/questions/11868811/capturing-the -output-的-的bash - 時間 - 在腳本變量) – tripleee 2015-02-14 16:42:13

回答

1

這會適合你嗎?

prog_output=`(time ls) 2> time_output` 
time_output=`cat time_output`