启动具有超过 80 列的分离屏幕会话?

启动具有超过 80 列的分离屏幕会话?

screen -dm有谁知道在“分离”模式( )下启动屏幕时更改默认 80 列宽度的方法吗?

智能诅咒应用程序会htop在稍后从宽终端连接时处理调整大小之类的应用程序,但对于像这样的愚蠢脚本来说已经太晚了:

#!/bin/bash    
echo "Scanning packages:"    
COLUMNS=132 dpkg -l | tr '\n' '\r'    
echo ""
echo "Done"

直接屏幕会话(从广义上讲)效果很好:

$ screen bash -c './myscript ; exec bash'
Scanning packages:
ii  zlib1g-dev:i386             1:1.2.8.dfsg-1ubun i386               compression library - developmentom shell scripts (common f
Done

但在“分离”模式下,80 列宽度搞乱了一切:

$ screen -dm  bash -c './myscript ; exec bash'
$ screen -r
    2.10.1-1ubuntu1    all                X Keyboardii  xloadimage                  4.1-22             i386               Graphics fii  xml-core                    
     0.13+nmu2          all                XML infrasii  xorg                        1:7.7+1ubuntu8     i386               X.Org X Wiii  xorg-docs-core              
      1:1.7-1            all                Core documii  xorg-sgml-doctools          1:1.11-1           all                Common tooii  xserver-common              
       2:1.15.1-0ubuntu2. all                common filii  xserver-xephyr              2:1.15.1-0ubuntu2. i386               nested X sii  xserver-xorg                
        1:7.7+1ubuntu8     i386               X.Org X seii  xserver-xorg-core           2:1.15.1-0ubuntu2. i386               Xorg X serii  xserver-xorg-input-all      
   ...

看起来命令或环境变量stty都不会在这里执行此操作,确实需要一种方法来从更广泛的术语开始......widthCOLUMNS

答案1

如果您可以使用tmux它,它允许您指定宽度:

tmux new-session -d -x 300 bash -c './your-script.sh'

相关内容