2013-05-09 106 views

回答

3

這取決於你使用的是什麼shell。在bash中,time是內置的,不能被重定向。你必須使用一個子shell重定向其標準錯誤:

(time gcc -lm test.c) 2> time.txt 
+0

嗯,除了你假設這裏使用的'time'是內置命令。看看當你做'(\'哪個時間\'gcc -lm test.c)2> time.txt'時會發生什麼。 – perror 2013-05-09 11:53:37

+0

@perror:其他人已經描述瞭如何處理'/ usr/bin/time'。正如我在答覆中所述,我表明瞭如何處理內建的問題。 – choroba 2013-05-09 12:00:50

+0

他們消失了......我寫了兩種答案的總結。 – perror 2013-05-09 12:03:44

0

這裏的問題是有兩個命令time。一個是bash內置命令,另一個是通常的Unix命令。

$> type time 
time is a shell keyword 
$> type `which time` 
/usr/bin/time is /usr/bin/time 

如果你想使用bash內置的,你應該寫爲choroba wrote

(time gcc -lm test.c) 2> time.txt 

但是,如果你想以確保即使內置的是你的腳本工作不存在,你最好儘量執行真正time命令的用法:

`which time` -o time.txt gcc -lm test.c 

欲瞭解更多信息n約time不要猶豫做man time

+0

如果你使用'在/ usr/bin中/ time'在某些系統上,如果你不使用純'time'內置只會工作。 – 2013-05-09 11:45:17

+0

我正要編輯我的信息。它僅適用於'bash'用戶(它有一個優先使用的「內部時間」命令)。但你是對的。 – perror 2013-05-09 11:46:06