Bash komutlarını otomatik olarak nasıl zamanlayabilirim?


14

İçinde tcshdeğişken var time:

   The time shell variable can be set to execute the time builtin command
   after the completion of any process that takes more than a given number
   of CPU seconds.

Bunu nasıl yapabilirim bash?

Yanıtlar:


14

Bas kaynağını değiştirmeden tam olarak aynı etkiyi elde edebileceğinizi sanmıyorum. Ama yakınlaşabilirsiniz, umarım sizin için yeterince yakın olabilirsiniz.

Duvar saatini müdahaleci olmayan bir şekilde göstermek için bash'ın huysuz precommand kancasını ve SECONDSdeğişkenini birleştirebilirsiniz . İşte Ville Laurikari sayesinde basit bir uygulama . Fonksiyonları timer_startve timer_stopbir komut başlamadan önce ve hemen sonraki istemi görüntülemeden önce derhal uygulamaya konulur.

function timer_start {
  timer=${timer:-$SECONDS}
}
function timer_stop {
  timer_show=$(($SECONDS - $timer))
  unset timer
}
trap 'timer_start' DEBUG
PROMPT_COMMAND=timer_stop
PS1='[last: ${timer_show}s][\w]$ '

timeHer komut için tam bilgi almak için , Dennis Williamson'ın bir yolu :

bind '"\C-j": "\C-atime {\C-e;}\C-m"'

Komut başlatmak yerine Ctrl+ düğmesine bastığınızda zaman bilgisi alırsınız. Değiştirilen komut bazen sözdizimsel olarak yanlış olacağından yeniden bağlama (yani + ) önerilmez.JEnterEnterCtrlM

Bkz . Son komutun duvar saati Bash istemine nasıl konabilir? ve Bash komut isteminde yürütülen her komut ve gösteri otomatik olarak zamanlama? diğer yöntemler için Yığın Taşması üzerinde (ancak çoğu CPU zamanını değil, sadece geçen gerçek zamanı verir).

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.