【问题标题】:How do I get just real time value from 'time' command?如何从“时间”命令中获取实时值?
【发布时间】:2011-04-17 06:21:45
【问题描述】:

我想制作一个仅输出 time 命令的实时值的脚本,以便绘制结果。例如time command 输出

real    1m0.001s
user    1m0.000s
sys  0m0.001s

我想写一个输出的脚本

60.001 

如何从“时间”命令中获取实时值(以秒为单位)?

【问题讨论】:

    标签: bash scripting shell


    【解决方案1】:

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

    $ TIMEFORMAT=%R
    $ time sleep 1
    1.022
    

    【讨论】:

    【解决方案2】:

    time 可以采用可选的--format-f 参数,但您必须使用时间命令的完整路径/usr/bin/time

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

    如果没有路径,它将是use the time command of the shell,它将所有参数视为命令,因此您将获得-f: command not found

    【讨论】:

    • @frederik-b 它不在 Ubuntu 19.04 上 \time -f "%e" sleep 5 告诉我 bash: time: command not found
    • 这适用于 gnu time,但不适用于 shell 的内置 time 命令,如果你运行 which -a time 你可能会看到 shell 是首选的,这就是为什么在某些情况下使用二进制文件的完整路径的原因案例。
    【解决方案3】:

    如果您写\time,您将强制不使用内置的 bash。 这样\time -f '%e' command就完成了。

    【讨论】:

      【解决方案4】:

      或者,使用/usr/bin/time 或查看类似问题
      Using time command in bash script

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-06
        • 1970-01-01
        • 2016-08-29
        相关资源
        最近更新 更多