Pertanyaan Bagaimana saya bisa melacak waktu dari baris perintah?


Saya mencari perintah untuk melacak waktu.

Saya membayangkan alur kerja berikut:

  1. Jalankan perintahnya
  2. ... melakukan sesuatu yang lain ...
  3. Kembali ke jendela terminal dan hentikan komando
  4. Sebagai output, Anda menerima waktu yang berlalu antara 3 dan 1

11
2017-11-08 19:18


asal


@JacobVlijm Saya sangat suka kejelasan jawaban Anwar di bawah ini. Sebagai pengguna non-teknis lebih mudah untuk memahami bahwa jawaban dalam duplikat mungkin. Apa yang kamu pikirkan? - orschiro
@JacobVlijm Saya tidak berpikir ini adalah duplikat. OP di sini meminta stopwatch, pertanyaannya ada menanyakan bagaimana mengukur waktu eksekusi proses. - Seth♦
@Jadi ok, suara ditarik kembali. - Jacob Vlijm
@Eric apakah Anda membaca komentar saya di atas? - Seth♦


Jawaban:


Jawaban ini menyarankan untuk digunakan

time cat

dan digunakan Ctrl-D untuk melihat waktu.

Anda juga bisa menggunakan

time read

dan digunakan Memasukkan kunci

Juga periksa jawaban ini pada pertanyaan yang sama


20
2017-11-08 19:24



Ini muncul di lembar contekan XKCD linux store-xkcd-com.myshopify.com/products/linux-cheat-shirt - exussum
nit: akhiri cat dengan ^D dari pada ^C untuk keluar dengan 0 bukannya 130. - wchargin
Terima kasih @chargin. Diperbarui - Anwar


Bagaimana tentang:

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

Dalam aksi:

$ stopwatch 
Hit Enter...
14 seconds elapsed

6
2017-11-08 20:05





Cara sederhana untuk melakukannya adalah dengan mengambil waktu mulai, dan setelah Anda menghentikan skrip - mengambil waktu berhenti. Terakhir, 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


3
2017-11-09 06:02



while True: pass menjalankan CPU pada 100%. Saya sarankan while True: time.sleep(1e9) sebagai gantinya (signal.pause() bekerja juga tetapi membutuhkan tambahan impor). - 2012rcampion
@ 2012rcampion titik yang bagus, edit itu sudah. - Sergiy Kolodyazhnyy
Biasanya dianggap praktik buruk untuk ditangkap semua pengecualian (meskipun dalam hal ini mungkin tidak terlalu relevan), except KeyboardInterrupt akan lebih baik - Tobias Kienzler
@TobiasKienzler Saya sadar akan hal itu. Jika ini adalah proyek besar, saya membagi hal 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 persis relevan. Plus, ini cara cepat dan kotor. Mengapa nit golf itu sedikit? - Sergiy Kolodyazhnyy
Saya sepenuhnya setuju, hanya berpikir itu layak disebut;) - Tobias Kienzler