¿Cómo puedo rastrear el tiempo desde la línea de comandos?

11

Estoy buscando un comando para rastrear el tiempo.

Me imagino el siguiente flujo de trabajo:

  1. Ejecuta el comando
  2. ...hacer algo más...
  3. Regrese a la ventana de terminal y detenga el comando
  4. Como salida, recibe el tiempo transcurrido entre 3 y 1
orschiro
fuente
@JacobVlijm Me gusta mucho la claridad de la respuesta de Anwar a continuación. Como usuario no técnico, es más fácil comprender que las respuestas en el posible hilo duplicado. ¿Qué piensas?
orschiro
2
@JacobVlijm No creo que sea un duplicado. El OP aquí está pidiendo un cronómetro, la pregunta allí es cómo medir el tiempo de ejecución del proceso.
Seth
@Seth ok, vota retractada.
Jacob Vlijm el
@ Eric, ¿leíste mi comentario anterior?
Seth

Respuestas:

6

Qué tal si:

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

En acción:

$ stopwatch 
Hit Enter...
14 seconds elapsed
Glenn Jackman
fuente
3

Una forma simple de hacerlo es tomar el tiempo de inicio, y una vez que detenga el script, tome el tiempo de parada. Finalmente, imprime la diferencia horaria. Esto se puede hacer fácilmente con Python:

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

O versión larga para facilitar la lectura:

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

La detención se realiza con Ctrl + C

Sergiy Kolodyazhnyy
fuente
1
while True: passejecuta la CPU al 100%. Sugeriría en su while True: time.sleep(1e9)lugar ( signal.pause()también funciona pero requiere una importación adicional).
Campamento 2012
@ 2012rcampion buen punto, ya editado en.
Sergiy Kolodyazhnyy
1
Por lo general, se considera una mala práctica detectar todas las excepciones (aunque en este caso probablemente no sea demasiado relevante), except KeyboardInterruptsería mejor
Tobias Kienzler, el
3
@TobiasKienzler Soy consciente de eso. Si este es un proyecto grande, divido cosas para atrapar múltiples excepciones. Siéntase libre de mirar mi otro código, indicadores y demás. Pero en este caso solo hay uno, por lo que no es exactamente relevante. Además, esta es una forma rápida y sucia. ¿Por qué jugar al golf un poco?
Sergiy Kolodyazhnyy
Estoy totalmente de acuerdo, solo pensé que valía la pena mencionarlo;)
Tobias Kienzler el