Bagaimana saya bisa melacak waktu dari baris perintah?

11

Saya mencari perintah untuk melacak waktu.

Saya membayangkan alur kerja berikut:

  1. Jalankan perintah
  2. ... lakukan sesuatu yang lain ...
  3. Kembali ke jendela terminal dan hentikan perintah
  4. Sebagai output, Anda menerima waktu yang telah berlalu antara 3 dan 1
orschiro
sumber
@JacobVlijm Saya sangat suka kejelasan jawaban Anwar di bawah ini. Sebagai pengguna non-teknis, lebih mudah untuk memahami bahwa jawaban di thread duplikat mungkin. Bagaimana menurut anda?
orschiro
2
@ JacobVlijm Saya tidak berpikir ini adalah duplikat. OP di sini meminta stopwatch, pertanyaan di sana menanyakan bagaimana mengukur waktu eksekusi proses.
Seth
@Seth ok, suara ditarik.
Jacob Vlijm
@ Eric apakah Anda membaca komentar saya di atas?
Seth

Jawaban:

6

Bagaimana tentang:

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

Beraksi:

$ stopwatch 
Hit Enter...
14 seconds elapsed
glenn jackman
sumber
3

Cara sederhana untuk melakukannya adalah dengan mengambil waktu mulai, dan setelah Anda menghentikan skrip - ambil waktu berhenti. Akhirnya, cetak perbedaan waktu. Ini dapat dengan mudah dilakukan dengan Python:

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

Atau versi panjang untuk keterbacaan:

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

Menghentikan dilakukan dengan Ctrl + C

Sergiy Kolodyazhnyy
sumber
1
while True: passmenjalankan CPU pada 100%. Saya sarankan while True: time.sleep(1e9)sebagai gantinya ( signal.pause()berfungsi juga tetapi membutuhkan impor tambahan).
Arcampion
@ 2012rcampion good point, sudah diedit.
Sergiy Kolodyazhnyy
1
Biasanya dianggap praktik buruk untuk menangkap semua pengecualian (meskipun dalam hal ini mungkin tidak terlalu relevan), except KeyboardInterruptakan lebih baik
Tobias Kienzler
3
@TobiasKienzler Saya tahu itu. Jika ini adalah proyek besar, saya membagi barang untuk menangkap beberapa pengecualian. Jangan ragu untuk melihat kode saya yang lain, indikator dan semacamnya. Tetapi dalam hal ini hanya ada satu, jadi itu tidak terlalu relevan. Plus, ini adalah cara yang cepat dan kotor. Mengapa nit golf sedikit?
Sergiy Kolodyazhnyy
Saya sepenuhnya setuju, hanya berpikir itu layak disebut;)
Tobias Kienzler