Höhe und Breite eines Terminalfensters?

Höhe und Breite eines Terminalfensters?

Wie kann ich die Anzahl der maximalen Zeilen und Zeichenspalten in einem geöffneten Bash-Terminalfenster herausfinden?

Ich weiß, dass ich das mit der Curses-C-Bibliothek wie folgt herausfinden kann:

getmaxyx(stdscr, mrow, mcol);

Ich möchte die Bash-Variablen mrow und mrol auf die gleiche Weise mit meiner Bash-Sitzung verknüpfen.

Antwort1

Bash hat die gesuchten Variablen bereits integriert: $LINES und $COLUMNS.

Leider funktionieren diese nur in interaktiven Shells und im Allgemeinen nicht für Skripte, aber es ist möglich, das Skript interaktiv zu machen, indem Sie der Shebang-Zeile des Skripts einen Schalter hinzufügen:

#!/bin/bash -i

Antwort2

Xterm verfügt über ein Tool namens resize, das in Skripten zum Festlegen derselben Variablen verwendet werden kann:

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

verwandte Informationen