bash – LINES和COLUMNS环境变量在脚本中丢失

前端之家收集整理的这篇文章主要介绍了bash – LINES和COLUMNS环境变量在脚本中丢失前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
考虑以下:
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

猜你在找的Bash相关文章