手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

time(1)

名称

time - 为简单命令计时

用法概要

time [-p] utility [argument]...

描述

time 实用程序可调用带有 argumentutility 操作数,并将一条消息写入标准错误,其中列出 utility 的计时统计信息。消息包含以下信息:

  • 从调用 utility 到其终止期间经过的(实际)时间。

  • 用户 CPU 时间相当于 times(2) 函数为执行 utility 的进程返回的 tms_utimetms_cutime 字段之和。

  • 系统 CPU 时间相当于 times() 函数为执行 utility 的进程返回的 tms_stimetms_cstime 字段之和。

如果 time 用作某个流水线的一部分,则报告的时间未指定(但它是该流水线上一个分组命令中的唯一一个命令时除外)。例如,下方左侧命令报告的时间未指定;右侧命令分别报告实用程序 ac 的时间:

time a | b | c		{ time a } | b | c
a | b | time c		a | b | (time c)

选项

支持以下选项:

–p

采用以下格式将计时输出写入标准错误:

real %f\nuser %f\nsys %f\n < real seconds>, <user seconds>,
<system seconds>

操作数

支持下列操作数:

utility

要调用的实用程序的名称。

argument

调用 utility 时要作为参数提供的任何字符串。

用法

如果出现错误,time 实用程序将返回退出状态 127,以使应用程序能够区分“无法找到实用程序”与“调用的实用程序已退出并已指明错误”。之所以选择值 127,是因为它不常用来表示其他含义。大多数实用程序使用小值表示“常规错误情形”,大于 128 的值可能会与因收到信号而终止混淆。值 126 的选择方式类似,表示可以找到但无法调用实用程序。

示例

示例 1 使用 time 命令

经常需要将 time 应用于流水线或命令列表。将流水线和命令列表置于一个文件中便可实现。随后可将这一个文件作为实用程序调用,time 将应用于文件中的所有内容。

或者,也可以使用以下命令将 time 应用于复杂的命令:

example% time sh -c 'complex-command-line'
示例 2 在 csh shell 中使用 time 命令

以下两个示例说明了 csh 版本的 time/usr/bin/time 中版本之间的区别。这些示例假定 csh 是正在使用的 shell。

example% time find / -name csh.1 -print
/usr/share/man/man1/csh.1
95.0u 692.0s 1:17:52 16% 0+0k 0+0io 0pf+0w

有关 time 输出格式的说明,请参见 csh(1)

example% /usr/bin/time find / -name csh.1 -print
/usr/share/man/man1/csh.1
real  1:23:31.5
user     1:33.2
sys     11:28.2

环境变量

有关影响 time 执行的环境变量 LANG、LC_ALL、LC_CTYPE、LC_MESSAGES、LC_NUMERIC、NLSPATH 和 PATH 的说明,请参见 environ(5)

退出状态

如果调用了 utilitytime 的退出状态将为 utility 的退出状态。否则,time 实用程序将以下列值之一退出:

1−125

time 实用程序中出现错误。

126

utility 已找到但无法调用。

127

无法找到 utility

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/core-os
接口稳定性
Committed(已确定)
标准
请参见 standards(5)

另请参见

csh(1)shell_builtins(1)timex(1)times(2)attributes(5)environ(5)standards(5)

附注

在多处理器计算机上运行 time 命令时,为 usersys 输出的值之和可能会超过 real。这是因为在多处理器计算机上,可能会在多个处理器之间划分任务。

如果计时的命令中断,显示的计时值可能并不总是非常精确。

已知问题

经过的时间精确到秒,而 CPU 时间以百分之一秒计。因此,CPU 时间之和最多会比经过的时间多一秒。