stty 的输出中的字符是如何编码的?

stty 的输出中的字符是如何编码的?

stty --all在一个终端上运行,该终端已被一个行为不当的进程重新配置,该进程在将我的终端恢复到原始设置之前退出。部分输出内容为:eol = M-^?;。这个编码是什么?这串字符是什么意思?

手册页中有这样的解释性评论,大概是针对那些先验理解的人来说的:

在设置中,CHAR 按字面意思理解,或者编码为 ^c、0x37、0177 或 127;特殊值 ^- 或 undef 用于禁用特殊字符。

答案1

表示M-高位被设置,所以在字符编码中添加“0x80”。

表示^?“DEL”字符,即 0x7F。

将两者相加,得到 0xFF。

我们可以测试一下:

$ stty -a | grep -w eol | sed 's/.*; //'
eol = <undef>;

$ stty eol 0xff 

$ stty -a | grep -w eol | sed 's/.*; //'
eol = M-^?;

提供了控制字符及其插入符号的完整列表在下面控制代码图维基百科文章中有关 ASCII 的部分

相关内容