Come posso tenere traccia del tempo dalla riga di comando?


11

Sto cercando un comando per tenere traccia del tempo.

Immagino il seguente flusso di lavoro:

  1. Esegui il comando
  2. ...Fai qualcos'altro...
  3. Tornare alla finestra del terminale e interrompere il comando
  4. Come output si riceve il tempo trascorso tra 3 e 1

@JacobVlijm Mi piace molto la chiarezza della risposta di Anwar di seguito. Come utente non tecnico è più facile comprendere che le risposte nel possibile thread duplicato. Cosa ne pensi?
Orschiro,

2
@JacobVlijm Non credo sia un duplicato. L'OP qui richiede un cronometro, la domanda è come misurare il tempo di esecuzione del processo.
Seth,

@Seth ok, voto ritirato.
Jacob Vlijm,

@Eric hai letto il mio commento sopra?
Seth,

Risposte:



6

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

3

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


1
while True: passesegue la CPU al 100%. Suggerirei while True: time.sleep(1e9)invece ( signal.pause()funziona anche ma richiede un'importazione aggiuntiva).
2012campo

@ 2012rcampion buon punto, già modificato in.
Sergiy Kolodyazhnyy,

1
Di solito è considerata una cattiva pratica catturare tutte le eccezioni (anche se in questo caso probabilmente non è troppo rilevante), except KeyboardInterruptsarebbe meglio
Tobias Kienzler

3
@TobiasKienzler Ne sono consapevole. Se questo è un grande progetto, faccio cose divise per catturare più eccezioni. Sentiti libero di guardare il mio altro codice, indicatori e simili. Ma in questo caso ce n'è solo uno, quindi non è esattamente pertinente. Inoltre, questo è un modo rapido e sporco. Perché nit golf leggermente?
Sergiy Kolodyazhnyy,

Sono pienamente d'accordo, ho pensato che valesse la pena menzionare;)
Tobias Kienzler,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.