在脚本中,我存储从变量中执行多个命令的累计时间(以毫秒为单位),我们称之为total_elapsed_Time
。这包含例如像
1001
或
12
现在,我想要的是以下面的形式输出这个值(带有训练毫秒的时间)
1.001
表示第一个值,
0.012
表示第二个值。目前,我这样做
printf '%d.%03d s' "$((total_elapsed_time / 1000))" "$((total_elapsed_time % 1000))"
这没关系,似乎有效,但我想知道是否有更简单的方法(因此我只需要将变量传递给printf,printf负责格式化数字)。
答案 0 :(得分: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