0

スクリプトでは、いくつかのコマンドを実行して累積した時間を ms 単位で変数に保存し、それを と呼びますtotal_elapsed_Time。これには、たとえば次のような値が含まれます

1001

また

12

今、私が望むのは、この値を次の形式で出力することです(トレーニングミリ秒の時間)

1.001

最初の値については、

0.012

2 番目の値。現時点では、私はこのようにしています

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 に答える