Відповіді:
Це допоможе, якби ви були набагато конкретнішими щодо того, що намагаєтесь зробити.
Ось надзвичайно спрощений приклад:
while true
do
clear
date
sleep 1
done
ви можете використовувати команду watch (1) для запуску сценарію через регулярні інтервали:
watch -n 1 myscript.sh
Це запускається myscript.sh
кожні 1 секунду, очищаючи екран між кожним пробігом та із позначкою часу в куті. Ви можете скористатися -d
опцією, і вона навіть виділить відмінності у виході за пробіг.
watch
. Чи можете ви бути більш конкретними? Яка ОС?
Більшість цих даних, як правило, піддаються віртуальним файлам / примитивної файлової системи. Кожен процес має запис в / proc в каталозі, який називається PID. Отже / proc / 5437 матиме примітиви для процесу 5437. Читання примітивів та їх відповідний розбір би все-таки закрили те, що робить верх.
Top фактично працює, викликаючи конкретні виклики функцій, які витягують цю інформацію безпосередньо з ядра, а не витягують її з файлів. Для того, щоб зробити те ж саме з bash, вам доведеться або витягнути його з віртуальної файлової системи / proc, або витягнути його з інших викликів, таких як ps
.
Що стосується реального часу, то це не зовсім можливо на рівні деталізації, що надає верх. Ви можете нарізати час досить тонко, щоб він виглядав у режимі реального часу, але ви все одно отримаєте відрізки часу.
Ем, якщо ви дивитеся на top
вихід довше, а не просто перевіряєте, чи добре працює програма, пропоную використовувати htop .
Це дає вам багато інформації в режимі реального часу і простіше контролювати та керувати нею.
Ви можете змінити макет виводу, наприклад, гістограми та стовпці.
top
використовує Curses і читає /proc
файлову систему
/proc
. Інший спосіб отримати інформацію - sysctl (8) / sysctl (3).
curses
інтерфейс ... але я думаю, що це більш