0

我有以下名为 timed 的脚本,我从这里得到。

    #!/bin/sh
    START=$(date +%s)
    STARTnano=$(date +%N)

    $@  # Command-line arguments, i.e. the program you wish to time

    END=$(date +%s)
    ENDnano=$(date +%N)

    DIFF=$(( (10#$END - 10#$START) * 1000000000 ))
    DIFFnano=$(( (10#$ENDnano - 10#$STARTnano)  ))

    DIFF=$(( 10#$DIFF + 10#$DIFFnano ))

    DIFFu=$(( 10#$DIFF / 1000000000 )) # Get correct units
    DIFFd=$(( 10#$DIFF - 10#$DIFFu ))  # Get figures after decimal place

    echo "'$@' took ${DIFFu}.${DIFFd} seconds to finish."

我正在尝试使用它来测量程序的运行时间。

它不起作用。我不断收到一个错误,它缺少')'。有人可以指出出了什么问题吗?

4

1 回答 1

0

要获取脚本的执行时间,使用 time 命令将是精确的。

例如

$time ls

**output of ls**

real    0m0.008s
user    0m0.000s
sys     0m0.008s

real、user 和 sys 的含义是有意义的。使用“人工时间”获取更多信息。您可以用任何命令(或脚本)替换 ls

于 2012-09-28T05:00:16.350 回答