Как я могу написать сценарий оболочки, который показывает результаты в режиме реального времени?
Что-то вроде top
команды, которая обновляет результаты через определенные промежутки времени.
Как я могу написать сценарий оболочки, который показывает результаты в режиме реального времени?
Что-то вроде top
команды, которая обновляет результаты через определенные промежутки времени.
curses
интерфейс ... но я думаю, что это болееОтветы:
Было бы полезно, если бы вы были более конкретны в том, что вы пытаетесь сделать.
Вот чрезвычайно упрощенный пример:
источник
Вы можете использовать команду watch (1) для регулярного запуска вашего скрипта:
Это будет выполняться
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).