我正在运行非常简单的命令:
[tester@centos-lvm ~]$ time cal > /dev/null
real 0m0.001s
user 0m0.000s
sys 0m0.001s
但是,如果我指定time
可执行文件的完整路径,我会得到不同的输出:
[tester@centos-lvm ~]$ /usr/bin/time cal > /dev/null
0.00user 0.00system 0:00.00elapsed ?%CPU (0avgtext+0avgdata 928maxresident)k
0inputs+0outputs (0major+272minor)pagefaults 0swaps
我相信当我运行time
(没有路径)时/usr/bin/time
实际上会执行:
[tester@centos-lvm ~]$ which time
/usr/bin/time
man time
告诉我们有两种不同的输出格式,该-p
选项在它们之间进行选择。但我没有指定任何选项!我检查了别名,没有任何关于时间的信息。
这种行为是非常出乎意料并且非常奇怪的。有人可以解释为什么以及如何发生这种情况吗?
答案1
当您在time
没有路径的情况下使用时,您可能会使用由内置 shell 提供的实用程序(请参阅特定 shell 的手册)。指定路径时,您肯定正在使用外部实用程序。
这两者在实现和产生的输出方面可能有所不同。