gpt4 book ai didi

time - 为什么 `time` 在 `echo` 上不起作用?

转载 作者:行者123 更新时间:2023-12-05 01:19:59 26 4
gpt4 key购买 nike

time 似乎在我的系统上正常工作:

➜  ~ time touch tmp.txt
touch tmp.txt 0.00s user 0.00s system 54% cpu 0.007 total

然而,当我尝试 time echo 时,它的输出似乎被抑制了。

➜  ~ time echo 🍔
🍔

并且使情节更复杂:它似乎恢复了测量 echo 的能力,前提是我将 echo 放入管道中:

➜  ~ time echo 🍔 | xxd     
00000000: f09f 8d94 0a .....
echo 🍔 0.00s user 0.00s system 38% cpu 0.002 total
xxd 0.00s user 0.00s system 88% cpu 0.003 total

这是怎么回事? echo 是否正在输出到 time 最喜欢的流,替换它的报告?

奖励积分:是否有某种方法(例如流重定向)使 time echo 🍔 输出通常的报告?


编辑:一些评论者指出我正在使用 zsh。我当时没有注意到这一点,但这可以解释很多。

bash 使用普通的可执行文件来执行 timeecho

bash-3.2$ which echo
/usr/local/opt/coreutils/libexec/gnubin/echo
bash-3.2$ which time
/usr/bin/time

(看起来我使用的是 GNU 版本的 echo,而不是 Mac OS X 附带的大概 BSD 版本 /bin/echo)。

zsh 提供了一些更特别的东西:

➜  ~ which echo
echo: shell built-in command
➜ ~ which time
time: shell reserved word

这些都不是普通的可执行文件。非常有趣!

最佳答案

当您使用内置的time(测量完整的管道)和另一个内置命令(如echo)时,这似乎会发生是的

奇怪的是,我在 zshall 手册页中找不到任何相关内容。

要解决这个问题,运行这个:

time command echo 🍔

command precommand modifier 调用外部 echo 而不是内置 echo。

关于time - 为什么 `time` 在 `echo` 上不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40517220/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com