Основная проблема состоит в том, что форматирование сделано одной программой, и подкачка страниц сделана другим. Даже если средство форматирования должно было получить сигнал, что размер окна изменил и переформатировал текст для нового размера окна, все, что это может сделать, подать новый текст вниз конвейер к пейджеру. Нет никакого пути к пейджеру для знания с уверенностью, какое положение в новом потоке соответствует положению в старом потоке, который это в настоящее время отображало.
То, в чем Вы нуждаетесь, - чтобы пейджер смог сделать переформатирование. Как @Robin Green сказал, это - HTML.
Если Вы хотите использовать HTML, но все еще работать в терминале, можно сказать man(1)
произвести в HTML и назвать браузер текстового режима для отображения его.
man -Hlynx man
Это отобразится man(1)
страница справочника в браузере текстового режима рыси. Lynx непосредственно не отвечает на изменения размера окна, но можно нажать ctrl-R, и рысь повторно представит страницу для нового размера окна.
Существует два других браузера текстового режима, о которых я знаю: ссылки и elinks. Вы могли экспериментировать с теми и рысью и определить, которые дают Вам лучший опыт для просмотра страниц справочника. Можно хотеть использовать пользовательскую конфигурацию только для страниц справочника и вызвать сценарий, который вызывает браузер с той определенной конфигурацией.
Можно поместить опции человека, которые Вы любите в MANOPT
переменная среды.
$ export MANOPT=-Hlynx
$ export MANOPT=-Hmanlynx # manlynx invokes lynx with a different configuration.
Необходимо будет установить groff
пакет для man
смочь генерировать HTML.
Этот отрывок используется для распечатывания имени хоста системы с синим фоном и зеленым шрифтом.
Для окраски оболочки Вы используете escape-последовательности особого цвета.
\e[
запускает цветовую схему, 32;
выберет основной цвет к зеленому, 44
выберет цвет фона к синему и m
закончит его.
$(command)
создает новую оболочку, выполняет команду и возвращает результат (не возвращаемое значение).
hostname
возвращает имя хоста существующей системы.
\e[m
сбросит окраску вывода.
Из страницы справочника эха:
-n do not output the trailing newline -e enable interpretation of backslash escapes
По моему скромному мнению, Ваш отрывок мог быть упрощен до echo -e "\e[32;44m $(hostname) \e[m";
См. главу 6.1 Цвета ПРАКТИЧЕСКОГО РУКОВОДСТВА Подсказки Bash для получения дополнительной информации.
см. http://en.wikipedia.org/wiki/Control_Sequence_Introducer для больше большего количества деталей