Ho1*_*Ho1 13 bash shell-builtin time-utility
使用该time命令时,我遇到了一种情况,我应该使用内置time而不是外部 GNU 时间命令/usr/bin/time。那么,我该怎么做呢?我在某处看到使用enable和/或command会有所帮助,但他们没有。
这是一个用例:
watch "time ls"
Run Code Online (Sandbox Code Playgroud)
它使用/usr/bin/time我不想要的外部命令!time当我time ls在终端上运行时调用内部 bash 函数时会发生这种情况,如下所示:
$ time ls
Run Code Online (Sandbox Code Playgroud)
请注意,这里已经回答了完全相反的请求:
两个命令有很多区别。内部time更精确(我想要),但外部命令有更多选项(我不需要)。
小智 14
默认情况下,watch运行您的命令,/bin/sh -c '...'因此您看到的输出是如何/bin/sh解释time命令。您/bin/sh显然没有内置time.
要使用不同的 shell 运行该命令,请使用该-x选项来摆脱默认值,然后添加您自己对您想要的内置 shell 的显式调用。
watch -x bash -c 'time ls'
watch -x zsh -c 'time ls'
Run Code Online (Sandbox Code Playgroud)
无论您如何运行watch,您正在查看的命令都不是运行该watch命令的 shell 的子级,因此 shell 的设置并不直接相关。