4 这有效: time ls -l 这不起作用 f() { ls -l } time f 在第二种情况下没有打印时间输出。为什么? bash zsh time — justingordon source
3 @ John1024给了你答案bash。我试着回答这个zsh标签...... 如果为函数生成子shell,则可以获得时序统计信息: % zsh % f() { sleep 1 } % time f % time (f) ( f; ) 0.00s user 0.05s system 4% cpu 1.061 total % time sleep 1 sleep 1 0.00s user 0.03s system 2% cpu 1.045 total 这增加了一点开销,但正如你从这个(非伪造的;))例子中看到的那样,它可能是微不足道的。 — MPY source
4 你有两个标记这个bash和zsh。这个答案适用于bash。 这是一个错误bash: f() { ls -l } 相反的是: f() { ls -l ; } 使用该新定义f,该time命令有效。 在下bash,当在大括号中将命令组合在一起时,最后一个命令必须后跟分号或换行符。这在“复合命令”中记录man bash。 (我会测试这个解决方案,zsh但我目前没有安装它。但是,根据这篇SO帖子,解决方案zsh可能是f在子shell中运行。更新:请参阅@ mpy的答案zsh。) — John1024 source 即使使用分号,也无法获得时间报告zsh。 — 2013年
zsh
。