我想在几个不同的条件下在 linux shell 中执行一些东西,并且能够输出每次执行的执行时间。
我知道我可以编写一个 perl 或 python 脚本来做到这一点,但是有没有办法在 shell 中做到这一点? (恰好是bash)
原文由 ʞɔıu 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以获得比内置 bash 更详细的信息 time
(即 time(1) ,Robert Gamble 提到过)。通常这是 /usr/bin/time
。
编者注:为确保您调用的是 外部实用程序 time
而不是 shell 的 time
_关键字_,请将其调用为 /usr/bin/time
。 time
是 POSIX 强制实用程序,但它需要支持的唯一选项是 -p
。特定平台实现特定的非标准扩展: -v
与 GNU 的 time
实用程序一起使用,如下所示(问题标记为 linux ); BSD/macOS 实现使用 -l
来产生类似的输出 - 参见 man 1 time
。
详细输出示例:
$ /usr/bin/time -v sleep 1
Command being timed: "sleep 1"
User time (seconds): 0.00
System time (seconds): 0.00
Percent of CPU this job got: 1%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:01.05
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 0
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 210
Voluntary context switches: 2
Involuntary context switches: 1
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
原文由 grepsedawk 发布,翻译遵循 CC BY-SA 4.0 许可协议
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答798 阅读✓ 已解决
2 回答3.2k 阅读
使用内置的
time
关键字:例子: