Amelio Vazquez-Reina Asked: 2019-10-20 12:25:33 +0800 CST2019-10-20 12:25:33 +0800 CST 2019-10-20 12:25:33 +0800 CST 跟踪和计时shell初始化的每一步 772 以下命令为我提供了完整的步骤跟踪 zsh -i -c -x exit > trace 2>&1 我希望它还可以在每个确切步骤(例如,作为第一列)旁边捕获该步骤花费了多长时间。 Zsh 是否提供了一种简单的方法来做到这一点? zsh 1 个回答 Voted Best Answer Gilles 'SO- stop being evil' 2019-10-20T23:38:10+08:002019-10-20T23:38:10+08:00 您可以轻松获得接近的东西(使用相当新的版本):每一步的时间戳。从以下文档-x: 输出前面是 $PS4 的值,其格式如Prompt Expansion中所述。 您可以在跟踪前缀中添加时间戳。%.为您提供 zsh ≥5.6 的纳秒精度,只有 5.0.6 和 5.5.x 之间的微秒精度。我认为在没有 的早期版本中%D,您只能获得第二精度。 PS4='+%D{%s.%9.}:%N:%i>' zsh -x … 然后,您可以对跟踪进行后处理以计算连续时间戳之间的差异。 <trace awk -F: '{printf "+%.09f", $1 - t; t=$1; $1=""; print}'
您可以轻松获得接近的东西(使用相当新的版本):每一步的时间戳。从以下文档
-x
:您可以在跟踪前缀中添加时间戳。
%.
为您提供 zsh ≥5.6 的纳秒精度,只有 5.0.6 和 5.5.x 之间的微秒精度。我认为在没有 的早期版本中%D
,您只能获得第二精度。然后,您可以对跟踪进行后处理以计算连续时间戳之间的差异。