检测终端是否切断或重新缠绕线路

检测终端是否切断或重新缠绕线路

据我了解,终端模拟器的“传统”行为是在窗口变窄时截断长行,而某些终端在调整大小时重新包装其内容。

Bash 脚本(或者作为最后的手段,C 程序)是否可以检测终端使用两种行为中的哪一种?

答案1

如果您使用的是 bash,为什么不直接设置行为呢?

例如,有以下几种选择:

shopt -s checkwinsize

会告诉 bash 检查 winsize 并采取适当的行动。手册页指出:

如果设置,bash 会在每个命令后检查窗口大小,并在必要时更新 LINES 和 COLUMNS 的值。

您还可以检查列数和行数,然后进行设置:

echo $COLUMNS; echo $LINES

如果它们不是您想要的,您可以设置它们:

COLUMNS=75;
LINES=20;
export COLUMNS LINES;

您可以在 bash 脚本中完成所有这些操作。

相关内容