스크립트 내에서 시간 측정

스크립트 내에서 시간 측정

이 스레드스크립트를 실행하는 데 걸리는 시간을 측정하는 방법을 보여줍니다. 내 경우에는 시간을 측정하는 데 관심이 있습니다. 스크립트의 두 지점 사이. 다음은 내가 어떻게 사용하고 싶은지에 대한 예입니다.

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

관련 정보