如何分别在 linux 终端中获取程序的执行时间
how to get time execution of a program in linux terminal separately
我想在我的终端中获取程序的执行时间。我知道我应该使用这个命令:
time chmod +x ~/example
但输出是这样的:
real 0m0.088s
user 0m0.057s
sys 0m0.030s
但我想分别访问每一个。例如 real
。我怎样才能得到它?
可以使用-f
格式化time
命令:
$ /usr/bin/time -f "\t%E Elapsed Real Time" touch a
0:00.00 Elapsed Real Time
the geek stuff 有关于这个主题的非常广泛的文档:
12 UNIX / Linux 时间命令输出格式选项示例.
同样有趣的是,单独使用 time
调用它对我不起作用,我必须使用完整路径。
你可以这样做:
(time chmod +x ~/example) |& awk '=="real"{print }'
0m0.003s
在 bash 中,您可以使用 TIMEFORMAT
变量影响 time
的输出,方法是设置
TIMEFORMAT=%R # real
TIMEFORMAT=%U # user
TIMEFORMAT=%S # sys
在调用它之前。但是,您的问题可能并没有就此结束——使用 bash 捕获 time
的输出并非易事,因为它不是子进程,而是内置的 shell。 bash FAQ 中有一个关于该主题的条目。从那里开始,我想你最终想要
TIMEFORMAT=%R myvar=$( { time chmod +x ~/example > /dev/null 2>&1; } 2>&1 )
那么$myvar
就是命令真正的运行时间
我想在我的终端中获取程序的执行时间。我知道我应该使用这个命令:
time chmod +x ~/example
但输出是这样的:
real 0m0.088s
user 0m0.057s
sys 0m0.030s
但我想分别访问每一个。例如 real
。我怎样才能得到它?
可以使用-f
格式化time
命令:
$ /usr/bin/time -f "\t%E Elapsed Real Time" touch a
0:00.00 Elapsed Real Time
the geek stuff 有关于这个主题的非常广泛的文档: 12 UNIX / Linux 时间命令输出格式选项示例.
同样有趣的是,单独使用 time
调用它对我不起作用,我必须使用完整路径。
你可以这样做:
(time chmod +x ~/example) |& awk '=="real"{print }'
0m0.003s
在 bash 中,您可以使用 TIMEFORMAT
变量影响 time
的输出,方法是设置
TIMEFORMAT=%R # real
TIMEFORMAT=%U # user
TIMEFORMAT=%S # sys
在调用它之前。但是,您的问题可能并没有就此结束——使用 bash 捕获 time
的输出并非易事,因为它不是子进程,而是内置的 shell。 bash FAQ 中有一个关于该主题的条目。从那里开始,我想你最终想要
TIMEFORMAT=%R myvar=$( { time chmod +x ~/example > /dev/null 2>&1; } 2>&1 )
那么$myvar
就是命令真正的运行时间