Как установить Cols и Lines для подпроцесса

У меня есть скрипт, который запускает серию сценариев с номером 001,002,003,004 … и т. Д. До 041 прямо сейчас, будет больше в будущем – и эти скрипты сами используют некоторый элемент управления курсором для печати индикатора выполнения и другой информации о статусе и получения ширины и высоты терминала от tput cols и tput lines соответственно.

Не переписывая суб-скрипты, я хотел бы зарезервировать одну строку внизу для общей информации о статусе внешнего скрипта. Мне было любопытно, есть ли способ установить, какие ответы tput для строк и столбцов.

Должен быть способ, потому что tmux достигает его. Я думал, что может быть переменная окружения, но единственное изменение, которое я вижу, что tmux делает при запуске env, задает значение $ TERM для отображения.

Любая помощь будет принята с благодарностью

  • отключить имя хоста в выводах «list windows» tmux
  • Проблема Tmux Terminfo с привязкой клавиш Zsh
  • Как я могу установить оболочку по умолчанию для запуска tmux
  • tmux на удаленном компьютере не получает правильный префикс + клавиши со стрелками
  • Захват содержимого строки состояния tmux
  • Истинная перезагрузка tmux config?
  • tmux, как связать ключ для входа в режим VI и искать назад?
  • Есть ли более элегантный способ отключить двух клиентов tmux, которые используют сеанс изнутри tmux?
  • 2 Solutions collect form web for “Как установить Cols и Lines для подпроцесса”

    Ниже вы можете настроить количество строк и столбцов.

     export LINES=1000 export COLUMNS=1000 

    Чтение источника было бы окончательным, но для малодушного, руководство – это место, куда нужно идти. Если параметр командной строки отсутствует, база данных терминала в сочетании с переменными среды предоставит сценарию все, что может потребоваться:

    • На странице руководства tput не упоминаются переменные среды.
    • Но в разделе « См. Раздел» он ссылается на curs_termcap (3x) , руководство для интерфейса termcap (функции).
    • На этой странице важны функции форматирования , указывающие на tputs на curs_terminfo(3x) .
    • Опять же (см. Функции вывода ) нет явного упоминания переменных среды.

    В поисках просветления вы можете попробовать страницу руководства ncurses .

    • В разделе « Окружающая среда» перечислены LINES и COLUMNS .
    • В LINES он просто говорит, чтобы видеть COLUMNS .
    • COLUMNS дает дополнительную информацию:

    Укажите ширину экрана в символах. Приложения, запущенные в среде окон, обычно имеют возможность получить ширину окна, в котором они выполняются. Если ни значение COLUMNS ни размер экрана терминала не доступны, ncurses использует размер, который может быть указан в базе данных terminfo (то есть, возможности cols ).

    Теперь, по этому вопросу, было бы неплохо, если бы страница руководства была более прямой, говоря, что tput использует tput для вывода, а также использует setupterm для инициализации. Иногда (когда эта информация легко доступна в журнале изменений) никто не замечает, что это не указано в руководстве. Например, этот элемент с 2002 года :

      + modify setupterm() to ensure that it initializes the baudrate, for applications such as tput (report by Frank Henigman). 

    Вернуться к теме:

    • Раздел инициализации curs_terminfo(3x) описывает setupterm , отмечая
    • в нормальном случае, когда use_env не был вызван, setupterm позволяет переменным LINES и COLUMNS переопределять значения базы данных терминала.
    • use_env руководства use_env повторяет это, а также комментируя, что значения могут быть получены из операционной системы.
    • Опять же, в changelog упоминается, что tput делает это (получает значения из операционной системы), например, это с 2007 года :

       + restore a call to obtain screen-size in _nc_setupterm(), which is used in tput and other non-screen applications via setupterm() (Debian #433357, reported by Florent Bayle, Christian Ohm, cf: 20070310). 

    Таким образом, существующая документация дает ответы на почти все вопросы о поведении ncurses, но вы должны сделать некоторое чтение.

    Interesting Posts

    Замена значений сущности XML положительным обратным знаком

    Mount unionfs (или aufs) ветвей, поданных из stdin?

    Соединение ssh отказалось от того же ПК при выходе за пределы локальной сети

    Как настроить малину для получения статического IP-адреса без автоматического назначения IP-адреса DHCP?

    Как округлить или преобразовать значение float в int с помощью bc? получение: "(standard_in) 1: синтаксическая ошибка"

    полное шифрование диска (включая своп, возможно, правдоподобную отрицательность)

    Ubuntu под VirtualBox 4.3.12 r93733 работает медленно на Windows7 с AVG бесплатно 2011

    Centos6.4 Kickstart застрял в% POST

    Запуск сценария перед выключением, казалось бы, не работает

    Где хранится именованный семафор?

    Должен ли я использовать «apt-get remove» или «apt-get purge»?

    USB-накопитель доступен только для чтения в GNOME / nautilus?

    tcpdump не показывает адрес src и dst

    Есть ли способ загрузить предположительно исходный источник bash-0.99?

    Анализ вывода SQLite

    Linux и Unix - лучшая ОС в мире.