Ответы:
Было бы полезно, если бы вы были более конкретны в том, что вы пытаетесь сделать.
Вот чрезвычайно упрощенный пример:
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интерфейс ... но я думаю, что это более