Para imprimir o tempo de execução do Script do Script?

Para imprimir o tempo de execução do Script do Script?

Estou pesquisando arquivos PDF em todos os diretórios, exceto aqueles .texpadtmppor código originalmente baseado emesta discussão.

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
}

onde, na última linha, tento imprimir o tempo de execução do script para cada arquivo sem sucesso.

Como você pode imprimir a hora corretamente?

Meu próximo objetivo é ter todos os tempos de execução e apresentá-los como porcentagens na saída como números inteiros para que eu possa aproximar para onde está indo a maior parte dos recursos de tempo.

Responder1

Método #1 – Usando horário de início/término

Você normalmente verá isso feito onde você faz:

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

E então subtraia o $begintempo do $endtempo para obter o número de segundos que se passaram.

tottime=$(expr $end - $begin)

Método #2 – Usando os comandos de tempo

O outro método seria usar o timecomando embutido no Bash ou time program that's included with most Linux/Unix systems here,/bin/time`.

Você pode verificar assim:

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

Você usa assim:

construídas em
$ time sleep 5

real    0m5.004s
user    0m0.001s
sys 0m0.001s
executável independente
$ /bin/time sleep 5
0.00user 0.00system 0:05.00elapsed 0%CPU (0avgtext+0avgdata 628maxresident)k
0inputs+0outputs (0major+191minor)pagefaults 0swaps

Eles fornecem resultados diferentes, mas você pode usar o que melhor atender às suas necessidades. Ambos imprimirão o tempo decorrido que um comando leva para ser executado:

$ time <cmd>

Então você pode prefixar seu pdf2textcomando.

informação relacionada