窗口大小调整、字体大小改变等后,如何轻松快速地查看终端当前的显示宽度是多少?
答案1
答案2
根据您的 shell,当窗口大小更改时,COLUMNS
( 和) 变量可能会自动设置。 LINES
bash、zsh、ksh 都可以。破折号没有。 tcsh 没有。
从man bash
:
COLUMNS 由 select 复合命令用来确定打印选择列表时的终端宽度。如果启用了 checkwinsize 选项或在收到 SIGWINCH 后在交互式 shell 中自动设置。
和
线路
由 select 复合命令用来确定打印选择列表的列长度。如果启用了 checkwinsize 选项或在收到 SIGWINCH 后在交互式 shell 中自动设置。
我发现以下别名很有用:
$ alias ttystat='echo $(tty) $TERM ${COLUMNS}x$LINES'
$ ttystat
/dev/pts/2 xterm 192x51
答案3
毫无疑问有一种更短的方法,但是下面除了 POSIX 指定的实用程序之外不使用任何东西来进行快速交互式检查:
printf '0123456789\n1234567890\n' | sed '1s/./&&&&&&&&&&/g;1s/^.//;2s/.*/&&&&&&&&&&/'
运行命令并读取显示屏最右侧的数字。将其读为两位数向下;它告诉您有多少列。
72 列终端上的示例输出(如图所示):
$ printf '0123456789\n1234567890\n' | sed '1s/./&&&&&&&&&&/g;1s/^.//;2s/
.*/&&&&&&&&&&/'
000000000111111111122222222223333333333444444444455555555556666666666777
777777788888888889999999999
123456789012345678901234567890123456789012345678901234567890123456789012
3456789012345678901234567890
$