Antworten:
Es wäre hilfreich, wenn Sie viel genauer wissen würden, was Sie versuchen zu tun.
Hier ist ein äußerst vereinfachtes Beispiel:
while true
do
clear
date
sleep 1
done
Mit dem Befehl watch (1) können Sie Ihr Skript in regelmäßigen Abständen ausführen:
watch -n 1 myscript.sh
Dies wird myscript.sh
alle 1 Sekunde ausgeführt und löscht den Bildschirm zwischen jedem Lauf und mit einem Zeitstempel in der Ecke. Sie können die -d
Option verwenden und es werden sogar Unterschiede in der Ausgabe pro Lauf hervorgehoben.
watch
. Könnten Sie genauer sein? Welches Betriebssystem?
Die meisten dieser Daten werden im Allgemeinen in den Grundelementen des virtuellen Dateisystems / proc verfügbar gemacht. Jeder Prozess hat einen Eintrag in / proc in einem Verzeichnis namens PID. / Proc / 5437 hätte also die Grundelemente für den 5437-Prozess. Wenn Sie die Grundelemente dort lesen und entsprechend analysieren, sind Sie dennoch nah an dem, was top tut.
Top funktioniert tatsächlich, indem bestimmte Funktionsaufrufe aufgerufen werden, die diese Informationen direkt aus dem Kernel extrahieren, anstatt sie aus Dateien abzurufen. Um dasselbe von bash aus zu tun, müssten Sie es entweder aus dem virtuellen Dateisystem / proc ziehen oder aus anderen Aufrufen wie zps
.
In Echtzeit ist dies auf der Detailebene, die top bietet, nicht ganz machbar. Sie können die Zeit so fein schneiden, dass sie in Echtzeit zu sein scheint, aber Sie erhalten trotzdem Zeitscheiben.
Ähm, für den Fall, dass Sie die top
Ausgabe länger betrachten und nicht nur prüfen möchten , ob ein Programm einwandfrei funktioniert , empfehle ich die Verwendung von htop .
Es gibt Ihnen viele Echtzeitinformationen und ist einfacher zu steuern und zu verwalten.
Sie können das Layout der Ausgabe ändern, z. B. Balkendiagramme und Spalten.
top
verwendet Curses und liest das /proc
Dateisystem
/proc
. Eine andere Möglichkeit, die Informationen abzurufen, ist sysctl (8) / sysctl (3).
curses
Schnittstelle ... aber ich denke, dies ist stärker eine Programmierfrage und gehört auf SO