![zsh `time` 不适用于 `source`](https://linux22.com/image/141237/zsh%20%60time%60%20%E4%B8%8D%E9%80%82%E7%94%A8%E4%BA%8E%20%60source%60%20.png)
我可以用它time
来获取运行时间统计数据:
% time zsh --version
zsh 5.6.2 (x86_64-pc-linux-gnu)
zsh --version 0.00s user 0.00s system 86% cpu 0.005 total
如何计算源脚本的运行时间?
% time source $NVM_DIR/nvm.sh
%
答案1
似乎zsh
不支持时间内置命令。
time
尝试使用支持作为保留字的shell (这适用于zsh
)和还支持对内置命令进行计时(这不适用于zsh
)。
顺便说一句:这适用于ksh88
、ksh93
、bosh
(当前的 Bourne Shell)mksh
和bash
。
顺便说一句:正确的计时方法是获取 shell 及其所有子过程(可能称为程序)的计时,并打印命令之前和之后的差异。如果计时包括在 shell 本身中花费的时间,则可以对内置命令进行计时。
背景是 shell 内部的工作时间应该与外部命令的工作时间兼容time
,并且外部time
命令打印为特定命令创建的所有进程的所有时间的总和。如果time
不包括子进程的值,它会为命令打印太低的值,cc
因为大部分工作是在 的子进程内完成的cc
。