如何从'time'命令获得实时值?

Mat*_*ers 32 bash shell scripting

我想创建一个脚本,只输出time命令的实时值,这样我就可以绘制结果.例如time command输出

real    1m0.001s
user    1m0.000s
sys  0m0.001s
Run Code Online (Sandbox Code Playgroud)

我想写一个输出的脚本

60.001 
Run Code Online (Sandbox Code Playgroud)

如何在几秒钟内从'time'命令获得实时值?

Pau*_*ce. 44

如果您正在使用Bash内置time,请将TIMEFORMAT变量设置为%R:

$ TIMEFORMAT=%R
$ time sleep 1
1.022
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!我喜欢'%0lR`最好(更可读的),用于执行慢的命令(见http://stackoverflow.com/questions/3683434/custom-format-for-time-command/3686395#3686395) (3认同)
  • 取消设置TIMEFORMAT以恢复原始格式 (3认同)
  • @mellow-yellow:“时间”不是命令。它在 Bash 手册中被称为保留字。它是经过特殊处理的。 (3认同)

eum*_*iro 22

According to time, the following should work:

/usr/bin/time -f "%e" sleep 3

3.00
Run Code Online (Sandbox Code Playgroud)

EDIT: call the --format command with its path:

/usr/bin/time -f "%e" sleep 3

3.00
Run Code Online (Sandbox Code Playgroud)

Without the path, it was using some -f's equivalent. With the path, it works for me.

  • @frederik-b Ubuntu 19.04 上没有 `\time -f "%e" sleep 5` 告诉我 `bash: time: command not find` (2认同)
  • 这直接适用于 gnu 时间,但不适用于 shell 的内置时间命令,如果您运行“which -a time”,您可能会看到 shell 的时间是首选,这就是为什么在某些情况下使用二进制文件的完整路径。 (2认同)