如何输出命令所花费的实际时间(而不输出其他内容)?

如何输出命令所花费的实际时间(而不输出其他内容)?

我怎样才能输出命令所花费的实际时间(而不输出其他内容)?

例子:

这不会起作用:

$ time -p sleep 2 | grep real
real 2.00
user 0.00
sys 0.00

我想要这样的东西:

$ print-real-time sleep 2
2.00

答案1

你需要捕获输出time然后你就可以处理它了。

答案2

非 BASH 特定的解决方案(明确使用,/usr/bin/time所以它不是吞噬管道的 bash 内置命令)--

/usr/bin/time -p some_command_or_subshell 2>&1 | grep real | awk '{print $2}'

根据您将此输出提供给的任何内容的微妙性质,您可能需要将主题命令的输出重定向到 /dev/null...

答案3

这是一个用于cut分割字段的黑客解决方案。

time -p sleep 2 | grep real | cut -f2 -d' '

您还可以使用awk

time -p sleep 2 | grep real | awk '{ print $2 }'

相关内容