相当于“tput sgr0”的 ANSI 转义是什么?

相当于“tput sgr0”的 ANSI 转义是什么?

tput sgr0为了避免使用子 shell, ANSI 兼容终端的ANSI 转义等效项是什么?

答案1

你可以通过查看输出来回答这个问题infocmp: 使用-1对于给定的设置,每行打印一个功能的选项TERM(即“ansi”),简化grep:

infocmp -1 ansi |grep sgr0=

并看到(例如)

sgr0=\E[0;10m,

这告诉你你可以做

printf '\033[0;10m'

获得与以下相同的效果

tput -T ansi sgr0

但你没有使用美国国家标准协会,而是一些特定的终端,尽管您使用的终端相似,但并非所有终端都相同。您的情况更有可能是TERM变量设置为类似“xterm”的值,(省略终端类型)给出

sgr0=\E(B\E[m,

共同的部分是\E[m,这是 terminfo 语法\033[m。每个序列中的其他字符正在重置备用字符集(并且可能取决于终端类型)。

相关内容