
Как узнать максимальное количество строк и столбцов символов в открытом окне терминала 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."