Szukam polecenia do śledzenia czasu.
Wyobrażam sobie następujący przepływ pracy:
- Uruchom polecenie
- ...Zrób coś innego...
- Wróć do okna terminala i zatrzymaj polecenie
- Jako wynik otrzymasz czas, który upłynął między 3 a 1
Szukam polecenia do śledzenia czasu.
Wyobrażam sobie następujący przepływ pracy:
Odpowiedzi:
Ta odpowiedź sugeruje użycie
time cat
i użyj Ctrl- Daby zobaczyć czas.
Możesz także użyć
time read
i użyj Enterklucza
Sprawdź również tę odpowiedź na to samo pytanie
catz^D zamiast zamiast ^Cz 0 zamiast 130.
Co powiesz na:
stopwatch() {
local start=$SECONDS
read -p "Hit Enter..."
echo $((SECONDS-start)) seconds elapsed
}
W akcji:
$ stopwatch
Hit Enter...
14 seconds elapsed
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
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).
except KeyboardInterruptbyłoby lepiej