0

在一个脚本中,我将执行多个命令的累积时间(以 ms 为单位)存储在一个变量中,让我们调用它total_elapsed_Time。这包含例如值

1001

或者

12

现在,我想要的是以以下形式输出这个值(以 s 为单位的时间,以毫秒为单位)

1.001

对于第一个值,

0.012

为第二个值。目前,我这样做

printf '%d.%03d s' "$((total_elapsed_time / 1000))" "$((total_elapsed_time % 1000))"

这没关系,似乎可行,但我想知道是否没有更简单的方法(所以我只需要将变量传递给 printf 和 printf 负责格式化数字)。

4

1 回答 1

2
for x in 1001 12 1 10 100 1000 10000 ; do
    x=00$x                              # Prepend two zeros, so we can safely
    x=${x:0: -3}.${x: -3}               # insert the dot on the third position from right.
    printf '%.3f\n' $x
done
于 2012-10-22T17:43:14.237 回答