На DE мы можем изменить размеры терминала (например, gnome-Terminal), как я могу узнать размер терминала в терминах пикселей или количества столбцов и строк?
13
Если вы выполните команду
stty size
он возвращает размер текущего терминала в строках и столбцах. Пример:
$ stty size
24 80
Вы можете прочитать строки и столбцы в переменные следующим образом (благодаря комментарию Яниса ):
$ read myrows mycols < <(stty size)
Получение размера в пикселях требует знания разрешения вашего экрана, и я не думаю, что stty
имеет прямой доступ к такой информации.
bash
поecho
команде в этом ответе не будет видеть переменные, так какread
в трубопроводе будет выполнен в подоболочки. (Он работаетksh
, хотя.) Дляbash
вас может потребоваться использование, например,read myrows mycols < <( stty size )
.В среде рабочего стола вы используете X, и
xwininfo
утилита может показывать размер окна в пикселях. Кроме того, если вы работаете на настольном компьютере (например, не подключены удаленно), эмулятор терминала предоставляет переменную,$WINDOWID
которую вы можете использовать в качестве параметраxwininfo
, например:и получить список перечисления это:
В этом примере строки с
Width
иHeight
являются размером в пикселях . Последняя строка с-geometry
дает размер в символах (а также положение верхнего левого угла - в пикселях).Говоря об изменении размера окна,
resize
программа показывает количество строк и столбцов. Для этого примера показаноВ вопросе не указывалось, как можно использовать информацию, но поскольку выходные данные являются текстовыми, в предсказуемом формате они легко сценариев. Вот простой пример использования awk:
какие отпечатки
источник