考虑以下:
me@mine:~$ cat a.sh #!/bin/bash echo "Lines: " $LINES echo "Columns: " $COLUMNS me@mine:~$ ./a.sh Lines: Columns: me@mine:~$ echo "Lines: " $LINES Lines: 52 me@mine:~$ echo "Columns: " $COLUMNS Columns: 157 me@mine:~$
变量$ LINES和$ COLUMNS是shell变量而不是环境变量,因此不会导出到子进程(但是当调整xterm窗口大小时,即使通过ssh从远程位置登录时,它们也会自动更新)。有没有办法让我的脚本知道当前的终端大小?
编辑:
我需要这个作为一个解决方法做this problem:vi(以及vim,更少,和类似的命令)每次使用它时混乱屏幕。更改终端不是一个选项,因此我正在寻找解决方法(向下滚动$ LINES行肯定不是完美的解决方案,但至少比失去以前的屏幕更好)
您可以从tput中获取行和列:
#!/bin/bash lines=$(tput lines) columns=$(tput cols) echo "Lines: " $lines echo "Columns: " $columns