export COLUMNS命令的重要性是什么?
我所知道的是它是一个全局变量。
我经常在*nix脚本的开头看到它。
发布于 2011-08-25 18:29:18
它是当前终端窗口的宽度,以ASCII字符的数量来度量。
来自man bash:
COLUMNS
Used by the select builtin command to determine the terminal
width when printing selection lists. Automatically set upon
receipt of a SIGWINCH.也是在更通用的ksh中:
COLUMNS
If this variable is set, the value is used to define the
width of the edit window for the shell edit modes and for
printing select lists.对于实际部分,请注意,当虚拟终端窗口的尺寸发生变化时,此变量的值会发生变化。(这是将上面提到的SIGWINCH发送到active shell的时候)。
发布于 2011-08-25 16:53:49
这个答案有点猜测,考虑到您没有说您看到的是哪种系统,Solaris、HP-UX、AIX、BSD、Linux (什么发行版?)等等。
与用户进行诅咒式交互的Shell脚本过去会设置环境变量、行和列。
诅咒式的交互性可以追溯到开窗系统之前,所以这些程序通常不会做任何事情来理解xterm窗口的大小。因此,许多基于诅咒的程序使用环境变量、行和列来决定如何布局它们的字段和标签。
有时,shell会在行和列环境变量开始运行时尝试查找和设置它们。许多较老的SunOS和Solaris系统都有/etc/profile这样做。有时,SIGWINCH (至少在SunOS和Solaris中)会被用来设置行和列变量。供应商过去常常以愚蠢的方式修改xterm,并且常常会破坏将SIGWINCH传递给运行在xterm中的进程组,并且诅咒风格的交互看起来非常糟糕。
https://unix.stackexchange.com/questions/19411
复制相似问题