スクリプト内で時間を測定する

スクリプト内で時間を測定する

このスレッドスクリプトの実行にかかる時間を測定する方法を示します。私の場合は、時間を測定することに興味があります。 スクリプトの2点間。以下は、私がどのように使用したいのかの例です。

start_measuring_time
Line 1
Line 2
..
Line N
stop_measuring_time
show_elapsed_time

表示したい時間は人が読める(秒、分、時間、日など)可能であれば。これを行う方法についてのアイデアはありますか?

答え1

以下を使用できますtime

time (
Line 1
Line 2
..
Line N
)

時間の出力は人間が読むことができると思いますが、スクリプトが日単位で測定する場合は、出力の書式man time設定オプションを確認してください。

答え2

dateユーティリティを使用できます。

#!/bin/bash

start_measuring_time() {
  read s1 s2 < <(date +'%s %N')
}

stop_measuring_time() {
  read e1 e2 < <(date +'%s %N')
}

show_elapsed_time() {
  echo "$((e1-s1)) seconds, $((e2-s2)) nanoseconds"
}

start_measuring_time
sleep 2
stop_measuring_time
show_elapsed_time

答え3

Timerscript.shの試みの例:

#!/bin/bash

#timing in minutes with %m
start=`date +%m`
echo 'Start:' $start
#do something e.g. wait for 1.30 minutes 
sleep 90

`end=`date +%m`
echo 'End: '$end
echo 'runtime: '$runtime

関連情報