4
是否可以將剛完成的進程的執行時間(「時間」命令的輸出)包含到命令提示符中?我們在linux上使用zsh,在Windows機器上使用bash(msys),因此知道如何在兩臺機器上都可以這樣做。將進程執行時間包含到shell提示符中
是否可以將剛完成的進程的執行時間(「時間」命令的輸出)包含到命令提示符中?我們在linux上使用zsh,在Windows機器上使用bash(msys),因此知道如何在兩臺機器上都可以這樣做。將進程執行時間包含到shell提示符中
對於zsh,您可以嘗試$REPORTTIME
變量(搜索man zshall
)。它不會在提示中放置時間,但它會在每次執行命令後回顯時間(在某些情況下不起作用)。您可以使用preexec
和precmd
掛鉤和與$SECONDS
變量獲得執行時間(但不是太精確):
function preexec() {
typeset -gi CALCTIME=1
typeset -gi CMDSTARTTIME=SECONDS
}
function precmd() {
if ((CALCTIME)) ; then
typeset -gi ETIME=SECONDS-CMDSTARTTIME
fi
typeset -gi CALCTIME=0
}
PS1='${ETIME} %'
(注意,在PS1定義中使用單引號)
第三種方法要麼力你無法改變環境變量的能力,或者只能用於單個命令。它也會迫使你寫一些黑客來查看命令輸出。這種方法是「重新定義接受線zle小部件,將time
添加到執行的命令」。我不在這裏寫代碼,因爲它有上面描述的問題。
順便說一下,$SECONDS
變量也可以在bash中使用,雖然我不知道如何在那裏實現掛鉤。
告訴我們你已經試過了,也許我們可以提供幫助。祝你好運。 – shellter