我有script.sh
向某个网址发送请求并使用whet
打印执行时间。这是源代码:
time wget http://some.url
当我从命令行运行它时,我看到时间结果,精确到3位小数:
real 0m0.584s
user 0m0.000s
sys 0m0.002s
但是,当我使用PHP函数exec("script.sh", $output)
运行此SH时,我看到时间结果的精度只有2位小数:
0.00user 0.00system 0:00.32elapsed 0%CPU (0avgtext+0avgdata 3788maxresident)k
如何在命令行中看到相同的结果?
答案 0 :(得分:2)
答案是in the manual:
注意:某些shell(例如bash(1))具有内置时间命令,该命令提供的功能少于此处描述的命令。要访问实际命令,您可能需要指定其路径名(类似于/ usr / bin / time)。
你从内置bash
获得了更高的精确度;如果你从shell运行/usr/bin/time
,你也会看到两个小数位。
不幸的是,time
是一种特殊情况,因为它是一个关键字而不是内置命令。否则,可以使用bash的builtin
命令来强制它。
所以看起来你会被困在两个小数位,除非你想尝试不同的方法:
start_time=`date +%s%N`
wget http://some.url
end_time=`date +%s%N`
bc -l <<< "scale=4;($end_time - $start_time) / 1000000000"