据我了解,终端模拟器的“传统”行为是在窗口变窄时截断长行,而某些终端在调整大小时重新包装其内容。
Bash 脚本(或者作为最后的手段,C 程序)是否可以检测终端使用两种行为中的哪一种?
答案1
如果您使用的是 bash,为什么不直接设置行为呢?
例如,有以下几种选择:
shopt -s checkwinsize
会告诉 bash 检查 winsize 并采取适当的行动。手册页指出:
如果设置,bash 会在每个命令后检查窗口大小,并在必要时更新 LINES 和 COLUMNS 的值。
您还可以检查列数和行数,然后进行设置:
echo $COLUMNS; echo $LINES
如果它们不是您想要的,您可以设置它们:
COLUMNS=75;
LINES=20;
export COLUMNS LINES;
您可以在 bash 脚本中完成所有这些操作。