¿Maldición de alto y ancho de una ventana de terminal?

¿Maldición de alto y ancho de una ventana de terminal?

¿Cómo puedo saber el número máximo de filas y columnas de caracteres en una ventana de terminal bash abierta?

Sé que puedo averiguarlo usando la biblioteca C de curses de esta manera:

getmaxyx(stdscr, mrow, mcol);

Me gustaría asociar las variables bash mrow y mrol a mi sesión bash de la misma manera.

Respuesta1

Bash ya tiene integradas las variables que busca: $LINES y $COLUMNS.

Desafortunadamente, estos solo funcionan en shells interactivos y generalmente no para scripts, pero es posible configurar el script para que sea interactivo agregando un interruptor a la línea shebang del script:

#!/bin/bash -i

Respuesta2

Xterm viene con una herramienta llamada resize, que se puede usar dentro de scripts para configurar las mismas variables:

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

información relacionada