Bash

事後發現命令執行時間

  • September 16, 2012

我剛剛從 bash 提示符處執行了一個長時間執行的程序。事後看來,我希望我能time堅持下去,或者記下我啟動它的時間。

有什麼方法可以追溯獲取這些資訊?.bash_history似乎不包括時間戳。

在我的特殊情況下,它是 Mac OS X,但我對一般的 Unix/Linux 解決方案感興趣。

澄清一下,該過程現在已經完成,除非絕對必要,否則我不想再次執行它!

bash實際上會記住時間,直到您關閉外殼。

所以嘗試執行

HISTTIMEFORMAT='%x %X ' history

如果你也放

HISTTIMEFORMAT=<some format>

在您的 中~/.bashrc,它也會~/.bash_history在退出時被寫入,因此您也可以檢查以前的 shell 會話中發生的情況。

Mikel 的回答很好,除瞭如果您執行程序並離開一段時間,您無法確定該過程何時完成。所以即使你有啟動程序的時間,你也不知道它花了多少時間。

當您需要在沒有準備的情況下找出答案時,我沒有解決方案。但是,如果您要再次這樣做,您可以像我一樣:將目前時間與 shell 提示符一起列印。這樣,如果您仍然打開終端,您可以看到您啟動程序的時間,以及列印下一個提示的時間。一些數學運算將為您提供執行時間。

要做到這一點bash,把它放在你的.bashrc

export PS1="\A \u@\h \W \$ "

zsh,把它放在你的.zshrc

export PS1="%D{%H:%M} %n@%m %1~ %# "

以上將給你的 shell 提示一個<time> <username>@<hostname> <current dir> <$ or % or #>. 對於不同的 shell 和瘋狂的 花哨提示,請閱讀 shell 的手冊頁。

注意:如果您需要高精度,或者程序產生的輸出太多以至於您看不到前面的提示,這可能無濟於事。

引用自:https://unix.stackexchange.com/questions/44686