使用转义序列"\033[21m"
用于重置/删除粗体/亮:
echo -e "Text\033[1mMore text\033[21mEnd"
必须返回:
文字更多文字结束
但我得到
文字更多文字结束
正如您所看到的,在xterm
"\033[21m"
更改为下划线并重置为粗体,我们需要使用"\033[0m"
,为什么会这样?
有没有办法改变这种行为? (也许用一些参数启动xterm)
答案 0 :(得分:2)
根据 XTerm Control Sequences ,SGR 21被“加倍强调”:
CSI Pm m Character Attributes (SGR).
Ps = 2 1 -> Doubly-underlined (ISO 6429).
Ps = 2 2 -> Normal (neither bold nor faint).
Ps = 2 3 -> Not italicized (ISO 6429).
Ps = 2 4 -> Not underlined.
Ps = 2 5 -> Steady (not blinking).
Ps = 2 7 -> Positive (not inverse).
Ps = 2 8 -> Visible, i.e., not hidden (VT300).
Ps = 2 9 -> Not crossed-out (ISO 6429).
也许您打算参加SGR 22。
双下划线功能在xterm patch #305中实现:
小型重组实施“填充”SGR功能。没有确定的应用依赖于这些;有些人觉得它们很有趣。
用于从属性位管理绘图状态的单独位。 实施SGR代码2,3,9,21及其相应的重置。 添加配置选项 --disable-wide-attrs
以禁用该功能。