stty size と LINES や COMUMNS 環境変数を参照する方法とがある。
$ stty size 85 158 $ echo ${LINES} ${COLUMNS} 85 158
LINES や COMUMNS 環境変数を考慮するかはプログラムに依存。例えば以下のとおり、stty は COMUMNS を無視している。
$ COLUMNS=80 stty -a speed 38400 baud; rows 85; columns 158; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
GNU Screen では resize コマンドでスクリーンのサイズを変更できる。縦幅と横幅を指定するので、リージョンを縦方向と横方向に分ける必要があるが。使い方は以下。-h で縦幅、-v で縦幅、-l で横幅
: usage: resize [-h] [-v] [-l] [num]
ということで、C-a :resize -h 80、C-a :resize -l 25とすれば、以下の結果が得られる。
$ stty size && echo ${LINES} ${COLUMNS} 24 79 24 79