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