Linux/Linux_technic

Linux shell - 프로그램 실행시간 구하기

sosal 2016. 3. 14. 19:22
반응형

/*

 http://sosal.kr/
 * made by so_Sal
 */

 

C언어에서는 time() 함수를,

python에서는 time.time() 등을 호출시켜서

프로그램이 특정 구간동안 얼마의 시간을 초과했는지, 할애했는지 쉽게 찾아볼 수 있다.

 

 

 

쉘스크립트 역시 특정 프로그램이 얼마나 오래 동작했는지 살펴볼 수 있다.

 

 

쉘 스크립트 $(date +%s) 를 이용하여  특정 프로그램을 실행시키는 동안

몇초가 경과했는지 알아볼 수 있다.


 

예제1은 #~~~실행하기에 특정 프로그램 실행 명령어를 넣어주면

StartTime에서 시간을 받아오고, 사용자의 명령이 종료할 시 EndTime에서 시간을 받아와

총 사용자 명령의 경과시간을 echo로 통해 출력해주는 쉘 스크립트이다.

 

-------------- 예제1. --------------

 

#!/bin/bash
StartTime=$(date +%s)

# ~~ 사용자 명령 실행하기

 

EndTime=$(date +%s)

echo "It takes $(($EndTime - $StartTime)) seconds to complete this task."

 

 

 

 

 

# ~~ 사용자 명령 실행하기, 이부분에 사용될 간단한 예제를 구현해보자.

예제프로그램 sleep.sh 는 단순히 "Program start"를 출력해 준 후,

3초를 기다렸다가 "Program end"를 출력해주는 쉘 스크립트이다.

 

이 프로그램이 실행되고 종료될 때 까지 3초의 시간을 할애하게 된다.

소스는 다음과 같다.

 

 

-------------- 실행할 프로그램 예제 --------------

# file name: sleep.sh

#!/bin/bash

echo "Program start."

sleep 3

echo "Program end."

 

 

 

 

 

 

실전 예제는 첫 예제1. 에서 '# ~~ 사용자 명령 실행하기' 부분에 sleep.sh를 실행하도록 해주는 명령어이다.

해당 예제를 실행하기 위해, 각 쉘스크립트 파일의 실행권한을 변경해줄 필요가 있다.

 

각 쉘 스크립트가 실행 가능하도록 하기 위해 chmod 755로 바꿔준다.

[sosal@sosal tmp]$ chmod 755 ./sleep.sh

[sosal@sosal tmp]$ chmod 755 ./TimeCheck.sh

 

-------------- 실전 예제 --------------

#! file name: TimeCheck.sh

STARTTIME=$(date +%s)

./sleep.sh
ENDTIME=$(date +%s)

echo "It takes $(($ENDTIME - $STARTTIME)) seconds to complete this task..."

 

 

[sosal@sosal tmp]$ cat sleep.sh