Bir kabuk komut dosyasından terminalde canlı sonuçlar nasıl gösterilir?


9

Sonuçları gerçek zamanlı olarak gösteren bir kabuk betiği nasıl yazabilirim?

topBazı sabit zaman aralıklarından sonra sonuçları güncelleyen komut gibi bir şey .

alternatif metin


6
muhtemelen bir cursesarayüz kullanıyor ... ama bence bu daha yoğun bir programlama sorusu ve SO
xenoterracide

Yanıtlar:



13

Kullanabileceğiniz izle (1) düzenli aralıklarla komut dosyasını çalıştırmak için komut:

watch -n 1 myscript.sh

Bu işlem, myscript.shher çalışma arasında ve köşede bir zaman damgası varken ekranı temizleyerek her 1 saniyede bir çalışır. -dSeçeneği kullanabilirsiniz ve çalışma başına çıkıştaki farklılıkları bile vurgulayacaktır.


Ben sadece saati kullanarak nasıl cevap vereceğini düşünüyordum.
Kevin M

Bende yok watch. Daha spesifik olabilir misiniz? Hangi işletim sistemi?
Chris Page

2

Bu verilerin çoğu genellikle / proc sanal dosya sistemi ilkellerinde gösterilir. Her işlemin PID adı verilen bir dizinde / proc içinde bir girişi vardır. Yani / proc / 5437, 5437 sürecinin ilkellerine sahip olacaktır. Oradaki ilkelleri okumak ve uygun şekilde ayrıştırmak, tepenin ne yaptığını henüz bilmiyor.

Top aslında bu bilgiyi dosyalardan çekmek yerine doğrudan çekirdekten ayıran belirli işlev çağrılarını çağırarak çalışır. Aynı şeyi bash'tan yapmak için ya / proc sanal dosya sisteminden çekmeniz ya da gibi diğer çağrılardan çıkarmanız gerekir ps.

Gerçek zamanlı gelince, bu üst ayrıntı sağlar oldukça yapılabilir değildir. Zamanı gerçek zamanlı gibi görünecek kadar ince dilimleyebilirsiniz, ancak yine de zaman dilimleri elde edersiniz.


2

Hmm, topçıktıya daha uzun süre bakmanız ve sadece bir programın iyi olup olmadığını kontrol etmek için değil, htop kullanmanızı öneririm .

Size birçok gerçek zamanlı bilgi verir ve kontrolü ve yönetimi daha kolaydır.

Çubuk grafikler ve sütunlar gibi çıktının düzenini değiştirebilirsiniz.


Ben özellikle üst veya htop hakkında değil düzenli aralıklarla anketler bir uygulama yazmak istediğini düşünüyorum.
Chris

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.