為什麼 GNU Bash 手冊中沒有“時間”?
[fakename]$ help time time: time [-p] pipeline Report time consumed by pipeline's execution...
由此看來,這
time
是一個內置的 Bash。但是,我在此頁面上找不到它的描述:https ://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html#Shell-Builtin-Commands 。為什麼會這樣?
它在bash 手冊頁的“Shell Grammar/Pipelines”小節中有描述。您在Pipelines部分提供的連結中也對其進行了描述,該連結在“Reserved Words”下進行了索引。
管道
管道是由一個控制運算符分隔的一個或多個命令的序列 | 或 |&。管道的格式是:
[time [-p]] [ ! ] command [ | or |& command2 ... ]
command 的標準輸出通過管道連接到 command2 的標準輸入。此連接在命令指定的任何重定向之前執行(請參閱下面的 REDIRECTION)。如果使用|&,則command的標準錯誤通過管道連接到command2的標準輸入;它是 2>&1 | 的簡寫。標準錯誤的這種隱式重定向在命令指定的任何重定向之後執行。
管道的返回狀態是最後一個命令的退出狀態,除非啟用了 pipefail 選項。如果啟用了 pipefail,則管道的返回狀態是最後一個(最右邊)以非零狀態退出的命令的值,如果所有命令都成功退出,則返回零。如果保留字!在管道之前,該管道的退出狀態是上述退出狀態的邏輯否定。shell 在返回值之前等待管道中的所有命令終止。
如果時間保留字在管道之前,則在管道終止時報告其執行所消耗的已用時間以及使用者和系統時間。-p 選項將輸出格式更改為 POSIX 指定的格式。TIMEFORMAT 變數可以設置為格式字元串,用於指定計時資訊的顯示方式;請參閱下面的 Shell 變數下對 TIMEFORMAT 的描述。
管道中的每個命令都作為單獨的程序執行(即,在子shell 中)。