在使用该time
命令时,我遇到了一种情况,我应该使用内置time
而不是外部 GNU time 命令/usr/bin/time
。那么,我该怎么做呢?我在某个地方看到使用enable
和/或command
会有所帮助,但他们没有。
这是一个用例:
watch "time ls"
/usr/bin/time
它使用了我不想要的外部命令!当我在终端上time
运行时调用内部 bash 函数时,会发生这种情况,如下所示:time ls
$ time ls
请注意,此处已回答了完全相反的请求:
两个命令有很多差异。内部命令time
更精确(我想要),但外部命令有更多选项(我不需要)。
答案1
默认情况下,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'
无论您如何运行watch
,您正在查看的命令都不是运行该watch
命令的 shell 的子命令,因此 shell 的设置不直接相关。