为什么 GNU Bash 手册中没有“time”?

为什么 GNU Bash 手册中没有“time”?
[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。为什么会这样呢?

答案1

它在“Shell 语法/管道”小节中进行了描述bash 联机帮助页。您在中提供的链接中也对此进行了描述管道部分,其索引如下「保留字」

管道

管道是由一个或多个命令组成的序列,由一个控制运算符 | | 分隔开。或|&。管道的格式为:

[time [-p]] [ ! ] command [ | or |& command2 ... ] 

command 的标准输出通过管道连接到command2 的标准输入。此连接在命令指定的任何重定向之前执行(请参阅下面的重定向)。如果使用|&,则command的标准错误通过管道连接到command2的标准输入;它是 2>&1 | 的简写。标准错误的隐式重定向是在命令指定的任何重定向之后执行的。

除非启用了 pipelinefail 选项,否则管道的返回状态是最后一个命令的退出状态。如果启用了 pipelinefail,则管道的返回状态是最后一个(最右边)以非零状态退出的命令的值,如果所有命令成功退出,则返回零。如果保留字!在管道之前,该管道的退出状态是如上所述的退出状态的逻辑非。 shell 在返回值之前等待管道中的所有命令终止。

如果时间保留字位于管道之前,则当管道终止时,会报告其执行所消耗的时间以及用户和系统时间。 -p 选项将输出格式更改为 POSIX 指定的格式。 TIMEFORMAT 变量可以设置为指定如何显示计时信息的格式字符串;请参阅下面的 Shell 变量下的 TIMEFORMAT 描述。

管道中的每个命令都作为单独的进程(即在子shell 中)执行。

答案2

可以使用在控制台上查看 Bash 参考手册info。然后,用户可以按 键在索引中搜索关键字i,输入关键字并按 键Enterinfo将跳转到手册中与关键字关联的第一个位置。按,即可到达其他位置。有关更多信息,请在线阅读 GNU Info 手册,或在控制台上使用info info.确实,在手册中快速找到关键字最重要的就是使用现有的索引。

关于这个问题的基本事实是time 不是一个内置但是一个重击保留字或者关键词

# 也可以看看

相关内容