我想在我的终端中获得执行程序的时间。我知道我应该使用这个命令:
time chmod +x ~/example
但输出是这样的:
real 0m0.088s
user 0m0.057s
sys 0m0.030s
但我想分别访问每一个。例如real
。我怎么能得到它?
答案 0 :(得分:2)
您可以使用-f
格式化time
命令:
$ /usr/bin/time -f "\t%E Elapsed Real Time" touch a
0:00.00 Elapsed Real Time
极客的内容有关于此主题的非常广泛的文档: 12 UNIX / Linux Time Command Output Format Option Examples。
单独用time
调用它对我来说不起作用也很有趣,我必须使用完整的路径。
答案 1 :(得分:2)
在bash中,您可以通过设置
来影响time
与TIMEFORMAT
变量的输出
TIMEFORMAT=%R # real
TIMEFORMAT=%U # user
TIMEFORMAT=%S # sys
在打电话之前。但是,你的问题可能并没有就此结束 - 捕获time
的输出对于bash并不是一件容易的事,因为它不是一个子进程而是一个内置的shell。关于该主题的bash FAQ中有一个条目。从那里开始,我想你最终想要
TIMEFORMAT=%R myvar=$( { time chmod +x ~/example > /dev/null 2>&1; } 2>&1 )
然后$myvar
将是命令的实际运行时间。
答案 2 :(得分:1)
你可以这样做:
(time chmod +x ~/example) |& awk '$1=="real"{print $2}'
0m0.003s