Komut satırından zamanı nasıl izleyebilirim?


11

Zamanı izlemek için bir komut arıyorum.

Aşağıdaki iş akışını hayal ediyorum:

  1. Komutu çalıştır
  2. ...başka bir şey yap...
  3. Terminal penceresine dönün ve komutu durdurun
  4. Bir çıktı olarak 3 ile 1 arasında geçen süreyi alırsınız

@JacobVlijm Anwar'ın cevabının aşağıdaki netliğini çok seviyorum. Teknik olmayan bir kullanıcı olarak cevapların olası yinelenen evrede olduğunu anlamak daha kolaydır. Ne düşünüyorsun?
orschiro

2
@JacobVlijm Bunun bir kopya olduğunu sanmıyorum. Buradaki OP, bir kronometre istemektedir; buradaki soru, işlem yürütme süresinin nasıl ölçüleceğini sormaktadır.
Seth

@Seth tamam, oy geri çekildi.
Jacob Vlijm

@Eric Yukarıdaki yorumumu okudun mu?
Seth

Yanıtlar:



6

Nasıl olur:

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

Eylemde:

$ stopwatch 
Hit Enter...
14 seconds elapsed

3

Bunu yapmanın basit yolu başlangıç ​​zamanını almaktır ve komut dosyasını durdurduktan sonra durma zamanını almaktır. Son olarak, zaman farkını yazdırın. Bu Python ile kolayca yapılabilir:

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

Veya okunabilirlik için uzun versiyon:

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

Durdurma Ctrl + C ile yapılır


1
while True: passCPU'yu% 100'de çalıştırır. Bunun while True: time.sleep(1e9)yerine öneririm ( signal.pause()çok çalışır, ancak ek bir içe aktarma gerektirir).
2012rcampion

@ 2012rcampion iyi bir nokta, zaten düzenlenmiş.
Sergiy Kolodyazhnyy

1
Tüm istisnaları yakalamak genellikle kötü bir uygulama olarak kabul edilir (bu durumda muhtemelen çok ilgili değildir), except KeyboardInterruptdaha iyi olurdu
Tobias Kienzler

3
@TobiasKienzler Bunun farkındayım. Bu büyük bir proje ise, birden fazla istisna yakalamak için bölünmüş şeyler yapıyorum. Diğer koduma, göstergelere ve benzerlerine bakmaktan çekinmeyin. Ancak bu durumda sadece bir tane var, bu yüzden tam olarak alakalı değil. Artı, bu hızlı ve kirli bir yol. Neden hafifçe golf oynuyor?
Sergiy Kolodyazhnyy

Tamamen katılıyorum, sadece bahsetmeye değer olduğunu düşündüm;)
Tobias Kienzler
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.