You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在zsh中实现tcsh set time自动输出命令执行时间统计的功能

zsh 自动打印命令执行耗时统计方案

结论

zsh 没有和 tcsh 命名完全一致的time特殊变量,但有功能完全对等的原生内置参数,无需复杂自定义配置即可实现相同效果。

配置方法

直接在你的~/.zshrc文件中添加如下两行配置即可:

# 含义同tcsh的set time:所有命令执行完成后都自动打印耗时统计,设置为正整数则仅打印耗时超过对应秒数的命令
REPORTTIME=0
# 可选:自定义输出格式,和tcsh默认的time输出格式1:1对齐
TIMEFMT="%Uu %Ss %E %P       %X+%Dk %I+%Oio %Fpf+%Ww"

添加完成后执行source ~/.zshrc立即生效。

效果验证

生效后执行命令的输出效果和tcsh完全一致:

% sleep 1
0.000u 0.015s 0:01.01 0.9%      0+0k 0+0io 2241pf+0w
% sleep 1 && sleep 0.1
0.000u 0.000s 0:01.01 0.0%      0+0k 0+0io 2241pf+0w
0.000u 0.015s 0:00.11 9.0%      0+0k 0+0io 2243pf+0w

补充说明

  • 该功能对应的REPORTTIME内置参数说明不在zshoptions(1)手册中,而是在zshparam(1)手册的Shell Variables章节,所以之前查阅选项文档会找不到相关内容。
  • 管道、多命令拼接(&&、||、;)等场景下,会对每个独立执行的命令分别统计并打印耗时,和tcsh的行为完全一致。
  • 如果你不需要和tcsh输出格式对齐,可以自定义TIMEFMT变量的格式,只保留你需要的统计字段即可。

内容的提问来源于stack exchange,提问作者cnst

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 03:36:03