высота и ширина ncurses терминального окна?

высота и ширина ncurses терминального окна?

Как узнать максимальное количество строк и столбцов символов в открытом окне терминала bash?

Я знаю, что это можно выяснить с помощью библиотеки C curses, например так:

getmaxyx(stdscr, mrow, mcol);

Я хотел бы связать переменные bash mrow и mrol с моей сессией bash таким же образом.

решение1

В Bash уже встроены переменные, которые вам нужны: $LINES и $COLUMNS.

К сожалению, они работают только в интерактивных оболочках, а не в скриптах, как правило, но можно сделать скрипт интерактивным, добавив переключатель в строку shebang скрипта:

#!/bin/баш -i

решение2

Xterm поставляется с инструментом под названием resize, который можно использовать внутри скриптов для установки тех же переменных:

eval $(resize)
echo "The screen is $COLUMNS columns wide."

Связанный контент