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