如何让zsh的REPORTTIME工作?

如何让zsh的REPORTTIME工作?

问题描述:

这是我的.zshrc:如何让zsh的REPORTTIME工作?

export REPORTTIME=3

当我运行sleep 4它不输出任何东西。 如果我更改为REPORTTIME=blablabla(或任何非感性的东西),它不会引发错误并开始表现为REPORTTIME=0,即返回所有事情所花费的时间。

有趣的是,如果我尝试REPORTTIME=3s我得到以下信息:

zsh: bad math expression: operator expected at `s' sleep 4 0.00s user 0.00s system 0% cpu 4.004 total

所以我得到的错误,仍然输出。我试过RERPORTTIME="3",甚至REPORTTIME=1+2。这些都不起作用。

此外,如果我运行python -c "import time; time.sleep(4)"我得到相同的结果(所以问题不在sleep)。

当然,我也尝试过其他值(3除外)。

我使用iterm2运行MacOS,zsh是我的默认shell。

+0

我认为问题只是'睡眠'并不真正需要时间。尝试不同的长时间运行过程。我转载了它,'睡眠'不报告,但'du -s/somereasonablesizedfolder/*'确实。 – Blorgbeard

您需要将其明确设置为非负整数;即

% REPORTTIME=3 

设置为其他非负值我的岩组v5.4.2 无法正常工作或。运行类似系统更新(例如,yaourt)然后 的行为就好像我已将time放在其前面一样。很漂亮!

所以你需要一个吃一些用户/系统时间的命令; sleep确实不是 。虽然总经过足够长,用户和系统时间是 不是:

% time sleep 3 
sleep 3 0.00s user 0.00s system 0% cpu 3.002 total 

而且,没有必要export这一点,因为它是直接使用岩组。

+0

谢谢!我不知道'REPORTTIME'只计算用户/系统时间,而不是挂钟时间。 顺便说一句,显然'python的time.sleep'也不算,尽管它发生在python作业中。 这个作品:'python -c“import numpy as np; from scipy.linalg import lu; lu(np.random.rand(10000,10000))”' – mparada