Jak mogę śledzić czas z wiersza poleceń?


11

Szukam polecenia do śledzenia czasu.

Wyobrażam sobie następujący przepływ pracy:

  1. Uruchom polecenie
  2. ...Zrób coś innego...
  3. Wróć do okna terminala i zatrzymaj polecenie
  4. Jako wynik otrzymasz czas, który upłynął między 3 a 1

@JacobVlijm Bardzo podoba mi się klarowność odpowiedzi Anwara poniżej. Jako użytkownik nietechniczny łatwiej zrozumieć, że odpowiedzi w możliwym zduplikowanym wątku. Co myślisz?
orschiro,

2
@JacobVlijm Nie sądzę, że jest to duplikat. OP tutaj prosi o stoper, pytanie, jak mierzyć czas wykonywania procesu.
Seth

@Seth OK, głosowanie wycofane.
Jacob Vlijm,

@Eric czy czytałeś mój komentarz powyżej?
Seth

Odpowiedzi:



6

Co powiesz na:

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

W akcji:

$ stopwatch 
Hit Enter...
14 seconds elapsed

3

Prostym sposobem jest zabranie czasu rozpoczęcia, a po zatrzymaniu skryptu - czasu zatrzymania. Na koniec wydrukuj różnicę czasu. Można to łatwo zrobić za pomocą Pythona:

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

Lub długa wersja dla czytelności:

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

Zatrzymywanie odbywa się za pomocą Ctrl + C


1
while True: passuruchamia procesor na 100%. Sugerowałbym while True: time.sleep(1e9)zamiast tego ( signal.pause()działa również, ale wymaga dodatkowego importu).
2012rcampion

@ 2012rcampion dobry punkt, edytowałem to już w.
Sergiy Kolodyazhnyy

1
Zazwyczaj uważa się za złą praktykę łapanie wszystkich wyjątków (choć w tym przypadku prawdopodobnie nie jest to zbyt istotne), except KeyboardInterruptbyłoby lepiej
Tobias Kienzler,

3
@TobiasKienzler Mam tego świadomość. Jeśli jest to duży projekt, dzielę rzeczy, aby złapać wiele wyjątków. Zapraszam do obejrzenia mojego innego kodu, wskaźników i tym podobnych. Ale w tym przypadku jest tylko jeden, więc nie jest dokładnie odpowiedni. Ponadto jest to szybki i brudny sposób. Po co lekko golfa?
Sergiy Kolodyazhnyy

W pełni się zgadzam, pomyślałem, że warto o tym wspomnieć;)
Tobias Kienzler,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.