스크립트에서 스크립트 실행 시간을 인쇄하시겠습니까?

스크립트에서 스크립트 실행 시간을 인쇄하시겠습니까?

.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 - 시간 명령 사용

time또 다른 방법은 Bash 또는 /bin/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접두사를 추가 할 수 있습니다.

관련 정보