加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 16:18:58 所属栏目:安全 来源:网络整理
导读:考虑以下: me@mine:~$ cat a.sh #!/bin/bashecho "Lines: " $LINESecho "Columns: " $COLUMNSme@mine:~$ ./a.sh Lines: Columns: me@mine:~$ echo "Lines: " $LINESLines: 52me@mine:~$ echo "Columns: " $COLUMNSColumns: 157me@mine:~$ 变量$ LINES和$ CO
考虑以下:
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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读