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

1

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

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

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

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 saber onde a maioria dos recursos de tempo está indo.

    
por Léo Léopold Hertz 준영 17.10.2014 / 01:48

1 resposta

1

Método 1 - Usando hora de início / fim

Você normalmente verá o que faz:

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

Em seguida, subtraia o tempo $begin do tempo $end para obter o número de segundos que se passaram.

tottime=$(expr $end - $begin)

Método 2 - Usando os comandos de hora

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

Você pode verificar da seguinte forma:

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

Você usa assim:

incorporado
$ time sleep 5

real    0m5.004s
user    0m0.001s
sys 0m0.001s
executável autônomo
$ /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 saídas diferentes, mas você pode usar o que sempre atende às suas necessidades. Ambos imprimirão o tempo decorrido que um comando leva para ser executado:

$ time <cmd>

Então, você poderia colocar o prefixo em seu comando pdf2text .

    
por 17.10.2014 / 02:39