Все *nix’оиды знают команду top и аналоги – htop, mytop и т.д. Аналогичны эти программы в своем принципе работы – постоянном (интерактивном) обновлении информации на экране.
А если нужно постоянно выводить на экран результат работы какой-то команлы или команд? Да еще и в удобном виде – с обновлением (очисткой) экрана. Как быть?
Способ #1
watch (для FreeBSD его родственник – gnu-watch)
Команда (gnu-)watch позволяет многократно запускать заданную команду или команды, выводя результат на экран. Примеры:
gnu-watch --differences=cumulative ls –la
Данная команда позволяет следить за файлами, при этом у измененных файлов будет подсвечен размер. Если не указывать cumulative, то изменение на экране будет подсвечено только один раз, при первом обнаруженном изменении во время обновления.
Я люблю наблюдать, как идет процесс сборки рейда:
gnu-watch -t gmirror status
Способ #2
работает везде при наличии bash
bash -c 'while true; do echo '^L'; gmirror status; echo; date; sleep 2; done' # или так bash -c 'while :; do clear; gmirror status; echo; date; sleep 2; done'
^L – в данном случае это !один! символ “Control-L”. Если вы просто нажмете эту комбинацию, то ничего не произойдет, точнее – вы очистите экран. Чтобы напечатался символ нужно прибегнуть к хитрости:
CTRL+V+L – о таком способе ввода непечатаемых символов я уже упоминал в этой статье.
Может пригодится 😉