0

The following will display the time it took for a given command to execute. How would I do the same but with better precision (i.e 5.23 seconds)?

[root@localhost ~]# start=`date +%s`; sleep 5  && echo execution time is $(expr `date +%s` - $start) seconds
execution time is 5 seconds
[root@localhost ~]#
4

3 回答 3

2

您可以尝试使用 time 命令。

time sleep 5

除了经过的挂钟时间之外,它还会告诉您进程消耗了多少 CPU 时间,以及在应用程序中花费了多少 CPU 时间以及在操作系统调用中花费了多少。

于 2013-06-30T13:11:32.307 回答
1

使用time命令:

time COMMAND
于 2013-06-30T13:09:22.973 回答
0

您还可以使用SECONDS变量:

在参考手册的Bash 变量部分,您将阅读:

SECONDS此变量扩展为自​​ shell 启动以来的秒数。分配给这个变量会将计数重置为分配的值,扩展值变为分配的值加上自分配以来的秒数。

因此,以下内容:

SECONDS=0; sleep 5; echo "I slept for $SECONDS seconds"

date应该输出 5。它只适用于以 1 秒的精度测量时间,但它肯定比你使用命令显示的方式要好得多。

如果您需要更高的精度,可以使用该time命令,但在变量中获取该命令的输出有点棘手。您将在BashFAQ/032 中找到所有信息:如何将输出重定向time到变量或文件?.

于 2013-06-30T13:38:53.347 回答