Como posso rastrear o tempo na linha de comando?


11

Estou procurando um comando para rastrear o tempo.

Eu imagino o seguinte fluxo de trabalho:

  1. Execute o comando
  2. ... faça outra coisa ...
  3. Volte à janela do terminal e pare o comando
  4. Como saída, você recebe o tempo decorrido entre 3 e 1

@JacobVlijm Eu realmente gosto da clareza da resposta de Anwar abaixo. Como usuário não técnico, é mais fácil compreender as respostas no possível encadeamento duplicado. O que você acha?
Orschiro 8/11

2
@JacobVlijm Eu não acho que isso seja uma duplicata. O OP aqui está pedindo um cronômetro, a pergunta lá está perguntando como medir o tempo de execução do processo.
Seth

@ Seth ok, voto retraído.
Jacob Vlijm

@ Eric você leu meu comentário acima?
Seth

Respostas:



6

E se:

stopwatch() { 
    local start=$SECONDS
    read -p "Hit Enter..."
    echo $((SECONDS-start)) seconds elapsed
}

Em ação:

$ stopwatch 
Hit Enter...
14 seconds elapsed

3

A maneira mais simples de fazer isso é usar o horário de início e, assim que você interrompe o script, faça o mesmo. Por fim, imprima a diferença horária. Isso pode ser feito facilmente com o Python:

python -c $'import time;start=time.time();\ntry:\n\twhile True: time.sleep(0.25)\nexcept: print(time.time()-start)'

Ou versão longa para facilitar a leitura:

import time
start=time.time();
try:
    while True: time.sleep(0.25)
except: 
    print(time.time()-start)

A parada é feita com Ctrl + C


1
while True: passexecuta a CPU em 100%. Em while True: time.sleep(1e9)vez disso, sugiro ( signal.pause()funciona também, mas requer uma importação adicional).
usar o seguinte código

@ 2012rcampion bom ponto, editado isso já.
Sergiy Kolodyazhnyy

1
É geralmente considerado má prática para pegar todas as exceções (embora neste caso provavelmente não é muito relevante), except KeyboardInterruptseria melhor
Tobias KIENZLER

3
@TobiasKienzler Estou ciente disso. Se este for um projeto grande, divido coisas para capturar várias exceções. Sinta-se livre para olhar para o meu outro código, indicadores e afins. Mas, neste caso, há apenas um, por isso não é exatamente relevante. Além disso, esta é uma maneira rápida e suja. Por nit golfe um pouco?
Sergiy Kolodyazhnyy

Concordo plenamente, apenas pensei que vale a pena mencionar;)
Tobias KIENZLER
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.