2013-03-22 84 views
2

我有了一個腳本hex.bat:時間命令的輸出保存到一個日誌文件

#!/bin/bash 
HEX_ROOT=. 
HEX_COLOURS=./data 
HEX_PDB=. 
HEX_MACROS=. 
HEX_CACHE=./data 

time ./hex6i.x64 -kill -nogui -ncpu 1 -ngpu 1 -e dock.mac -l job.log 

所有輸出爲job.log,除了時間。我想保存在jog.log執行此腳本的持續時間。有沒有人有任何線索?

在此先感謝。

回答

1

我得到了使用括號

#!/bin/bash 
HEX_ROOT=. 
HEX_COLOURS=./data 
HEX_PDB=. 
HEX_MACROS=. 
HEX_CACHE=./data 

(time ./hex6i.x64 -kill -nogui -ncpu 1 -ngpu 1 -e dock.mac -l job.log) &> job.log 
+0

如果將輸出寫入與實際命令相同的文件,則應使用「&>>」,否則時間輸出將覆蓋命令中的日誌。 – rudi 2015-10-14 12:13:45

2

time將其輸出到標準errror,而不是標準輸出,從而把報告中不同的輸出流。例如,要將輸出寫入文件的程序時間很常見,而不將時間輸出放入日誌中。

如果你想輸出的時間去到日誌,你有兩個選擇:

  1. 使用的time-o並可能-a選項的time輸出寫入日誌文件。您的time實施可能會或可能不會有這些選項。

  2. 重定向標準錯誤:time .... 2>> job.log2>&1。前者寫入相同的日誌文件(通過append);後者在標準輸出所在的位置發送標準錯誤輸出。請注意,兩者都會影響time運行的程序以及time本身。

+0

2 >>重定向只有標準錯誤,不能同時爲 – Lorkenpeist 2013-03-22 22:45:15

+0

確實如此,故意如此。如果你只關心時間輸出,那麼重定向標準輸出就毫無意義。從最初的問題來看,正在運行的程序顯然有自己的日誌管理,重定向標準輸出可能並不理想。 (在我的回答中有一個流浪的「可能會令人困惑」,我會擺脫它)。 – rra 2013-03-22 23:07:44

+0

如果您收到'-o:命令未找到'的消息 - 請不要忘記'time'是關鍵字在bash中。您可能需要使用'command time'或'/ usr/bin/time' - http://askubuntu.com/a/86196/227180 – culix 2016-04-09 08:55:27

相關問題