프로세스의 실행 시간을 보다 효율적으로 계산

프로세스의 실행 시간을 보다 효율적으로 계산

프로그램이 종료된 직후에 프로그램의 실행 시간을 구해야 하는데 이런 생각이 들었습니다.

start=`date +"%M"`
while [ `pgrep vlc` ];do
        echo vlcopen > /dev/null
done
stop=`date +"%M"`

[ $stop -lt $start ]&&time=$[ 60-$start+$stop ]||time=$[ $stop-$start ]
echo $time > time.txt

작업은 완료되지만 매우 비효율적이며 많은 컵 사용이 필요합니다. 이 작업을 보다 효율적으로 수행할 수 있는 방법은 무엇입니까?

답변1

한 가지 옵션은 다음을 사용하는 것입니다.time

참고: Bash에는 키워드가 있으므로 time그렇게 하는 경우:

time some command

그게 사용됐어요, SHELL_GRAMMAR: 배쉬

time보통 남자들에게서 흔히 볼 수 있는 것이 time바로 이것이다 ./usr/bin/time

$ type -t time
keyword

사용의 주요 포인트배쉬가 아닌-v시간은 (GNU ) 와 같은 함수입니다 time.

또한보십시오:time(1)의 출력에서 ​​"real", "user" 및 "sys"는 무엇을 의미합니까?

답변2

사용배쉬 SECONDS변수:

SECONDS=0

# do stuff here, such as
sleep 5

duration=$SECONDS

echo "The stuff took $duration seconds to complete"

외부 프로세스를 생성할 필요성을 제거하여 효율성을 높입니다.

관련 정보