In DE können wir die Größe des Terminals ändern (z. B. Gnome-Terminal). Wie kann ich die Größe des Terminals in Pixeln oder der Anzahl von Spalten und Zeilen ermitteln?
13
Wenn Sie den Befehl ausgeben
stty size
Es gibt die Größe des aktuellen Terminals in Zeilen und Spalten zurück. Beispiel:
$ stty size
24 80
Sie können die Zeilen und Spalten wie folgt in Variablen einlesen (dank Janis 'Kommentar ):
$ read myrows mycols < <(stty size)
Um die Größe in Pixeln zu erhalten, müssen Sie die Auflösung Ihres Bildschirms kennen, und ich glaube, Sie haben keinen stty
direkten Zugriff auf solche Informationen.
bash
demecho
in dieser Antwort Befehl wird die Variablen nicht sehen, da dieread
in der Pipeline in einer Subshell ausgeführt wird. (Es funktioniert jedoch inksh
.) Fürbash
Sie möchten vielleicht verwenden, zBread myrows mycols < <( stty size )
.In einer Desktop-Umgebung verwenden Sie X, und das
xwininfo
Dienstprogramm kann die Größe des Fensters in Pixel anzeigen. Wenn Sie auf dem Desktop ausgeführt werden (und beispielsweise keine Remoteverbindung haben), stellt der Terminalemulator eine Variable zur Verfügung,$WINDOWID
die Sie als Parameter verwenden könnenxwininfo
, um z.und erhalten eine Auflistung dieser:
In diesem Beispiel haben die Zeilen mit
Width
undHeight
die Größe in Pixel . Die letzte Zeile mit-geometry
gibt die Größe in Zeichen (sowie die Position der linken oberen Ecke - in Pixel) an.Apropos Ändern der Größe des Fensters, das
resize
zeigt Programm die Anzahl der Zeilen und Spalten. In diesem Beispiel wird gezeigtIn der Frage wurde nicht angegeben, wie die Informationen verwendet werden könnten. Da es sich bei der Ausgabe jedoch um Text in einem vorhersehbaren Format handelt, können Skripte erstellt werden. Hier ist ein einfaches Beispiel mit awk:
welche druckt
quelle