Odpowiedzi:
Byłoby to pomocne, gdybyś był bardziej szczegółowy w tym, co próbujesz zrobić.
Oto niezwykle uproszczony przykład:
while true
do
clear
date
sleep 1
done
możesz użyć komendy watch (1), aby uruchamiać skrypt w regularnych odstępach czasu:
watch -n 1 myscript.sh
Będzie to działać myscript.sh
co 1 sekundę, czyszcząc ekran między każdym biegiem i ze znacznikiem czasu w rogu. Możesz użyć tej -d
opcji, a nawet podkreśli różnice w wydajności na przebieg.
watch
. Możesz być bardziej dokładny? Jaki system operacyjny
Większość tych danych jest na ogół ujawniana w operacjach podstawowych wirtualnego systemu plików / proc. Każdy proces ma wpis w / proc w katalogu o nazwie PID. Więc / proc / 5437 miałby prymitywy dla procesu 5437. Czytanie tam prymitywów i odpowiednie parsowanie zbliżyłoby się do tego, co robi top.
Top faktycznie działa, wywołując określone wywołania funkcji, które wydobywają te informacje bezpośrednio z jądra, zamiast wyciągać je z plików. Aby zrobić to samo z bash, musisz pobrać go z wirtualnego systemu plików / proc lub wypakować go z innych wywołań, takich jak ps
.
Co do czasu rzeczywistego, nie jest to wykonalne na poziomie szczegółowości, jaki zapewnia top. Możesz pokroić czas wystarczająco dobrze, aby wyglądał na czas rzeczywisty, ale nadal będziesz otrzymywać odcinki czasu.
Emm, jeśli patrzysz na top
dane wyjściowe przez dłuższy czas, a nie tylko po to, aby sprawdzić, czy program działa dobrze, sugeruję użycie htop .
Daje ci wiele informacji w czasie rzeczywistym i jest łatwiejszy do kontrolowania i zarządzania.
Możesz zmienić układ danych wyjściowych, takich jak wykresy słupkowe i kolumny.
top
używa Curses i odczytuje /proc
system plików
/proc
. Innym sposobem na uzyskanie informacji jest sysctl (8) / sysctl (3).
curses
interfejsu ... ale myślę, że jest to bardziej problem programistyczny i należy do SO