Sto cercando un comando per tenere traccia del tempo.
Immagino il seguente flusso di lavoro:
- Esegui il comando
- ...Fai qualcos'altro...
- Tornare alla finestra del terminale e interrompere il comando
- Come output si riceve il tempo trascorso tra 3 e 1
Sto cercando un comando per tenere traccia del tempo.
Immagino il seguente flusso di lavoro:
Risposte:
Questa risposta suggerisce di usare
time cat
e usa Ctrl- Dper vedere l'ora.
Puoi anche usare
time read
e usa la Enterchiave
Controlla anche questa risposta sulla stessa domanda
catcon ^Dinvece di ^Cuscire con 0 invece di 130.
Che ne dite di:
stopwatch() {
local start=$SECONDS
read -p "Hit Enter..."
echo $((SECONDS-start)) seconds elapsed
}
In azione:
$ stopwatch
Hit Enter...
14 seconds elapsed
Un modo semplice per farlo è prendere l'ora di inizio e, una volta interrotta la sceneggiatura, prendere l'ora di fine. Infine, stampa la differenza di tempo. Questo può essere fatto facilmente con Python:
python -c $'import time;start=time.time();\ntry:\n\twhile True: time.sleep(0.25)\nexcept: print(time.time()-start)'
O versione lunga per leggibilità:
import time
start=time.time();
try:
while True: time.sleep(0.25)
except:
print(time.time()-start)
L'arresto viene eseguito con Ctrl + C
while True: passesegue la CPU al 100%. Suggerirei while True: time.sleep(1e9)invece ( signal.pause()funziona anche ma richiede un'importazione aggiuntiva).
except KeyboardInterruptsarebbe meglio