使用 bash 中内置的“time”命令而不是外部命令

使用 bash 中内置的“time”命令而不是外部命令

在使用该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 的设置不直接相关。

相关内容