Script에서 Script의 실행시간을 출력하려면?

Script에서 Script의 실행시간을 출력하려면?

.texpadtmp원래 코드를 기반으로 한 디렉토리를 제외한 모든 디렉토리에서 PDF 파일을 검색하고 있습니다.이 토론.

function findpdfs() {
find . -iname '*.pdf' -not -path "*.texpadtmp*" | while read filename
do
  echo -e "\033[34;1m// === PDF Document:\033[33;1m $filename\033[0m"
  pdftotext -enc Latin1 "$filename" - | grep --color=always -i $1
  time         # TODO problem here!
done
}

여기서 마지막 줄에서는 각 파일에 대한 스크립트의 실행 시간을 인쇄하려고 시도했지만 실패했습니다.

시간을 어떻게 정확하게 인쇄할 수 있나요?

다음 목표는 모든 실행 시간을 파악하고 이를 정수로 출력에 백분율로 표시하여 대부분의 시간 리소스가 어디에 사용되는지 대략적으로 파악하는 것입니다.

답변1

방법 #1 - 시작/종료 시간 사용

일반적으로 다음과 같은 위치에서 완료되는 것을 볼 수 있습니다.

begin=$(date +%s) 
... do something ...
end=$(date +%s)

그런 다음 $begin시간에서 시간을 빼서 $end경과된 초 수를 구합니다.

tottime=$(expr $end - $begin)

방법 #2 - 시간 명령 사용

다른 방법은 Bash 또는 /bin/time` time에 내장된 명령을 사용하는 것입니다.time program that's included with most Linux/Unix systems here,

다음과 같이 확인할 수 있습니다.

$ type -a time
time is a shell keyword
time is /usr/bin/time
time is /bin/time

다음과 같이 사용합니다.

내장
$ time sleep 5

real    0m5.004s
user    0m0.001s
sys 0m0.001s
독립 실행형 실행 파일
$ /bin/time sleep 5
0.00user 0.00system 0:05.00elapsed 0%CPU (0avgtext+0avgdata 628maxresident)k
0inputs+0outputs (0major+191minor)pagefaults 0swaps

서로 다른 출력을 제공하지만 필요에 맞는 것을 사용할 수 있습니다. 둘 다 명령을 실행하는 데 걸리는 경과 시간을 인쇄합니다.

$ time <cmd>

따라서 pdf2text명령 앞에 접두사를 붙일 수 있습니다.

관련 정보