Bashスクリプトで時間を測定する方法は?

Bashスクリプトで時間を測定する方法は?

に基づいてこれ答え、私のbashスクリプトで時間を測定するには、次のものを使用できます。

start_time="$(date -u +%s.%N)"
sleep 5
end_time="$(date -u +%s.%N)"

elapsed="$(bc <<<"$end_time-$start_time")"
echo "Total of $elapsed seconds elapsed for process"

そしてそれは素晴らしい作品です。しかし、スクリプトファイルがたくさんあるので、コードを単純化して乾燥させたいと思います。たとえば、次のようなコードを実装したいと思います。

. /time.sh

start_time=now
sleep 5
end_time=now

measure_time

つまり、time.shどこにでも含めることができ、2つの機能を持つ別のスクリプトが必要です。 1つは部品を交換すること"$(date -u +%s.%N)"、もう1つは"$(bc <<<"$end_time-$start_time")"部品を交換することです。

これらの関数を作成しましたが、シェルでは関数から値を返すことができないことに気づきました。数値のみを返すことができます。

上記のコードを下のコードに単純化する方法はありますか?

ベストアンサー1

何が間違っていますかtime ./script.sh

簡単な例:-

就寝時間5

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

おすすめ記事