Tom*_*ale 2 terminal tput ansi
为了避免子shell,tput sgr0
ANSI兼容终端的ANSI转义等效项是什么?
您可以通过查看 : 的输出来回答这个问题infocmp
:使用-1
选项为给定的设置TERM
(即“ansi”)每行打印一个功能,简化了grep
:
infocmp -1 ansi |grep sgr0=
Run Code Online (Sandbox Code Playgroud)
并看到(例如)
sgr0=\E[0;10m,
Run Code Online (Sandbox Code Playgroud)
这告诉你你可以做
printf '\033[0;10m'
Run Code Online (Sandbox Code Playgroud)
获得相同的效果
tput -T ansi sgr0
Run Code Online (Sandbox Code Playgroud)
但是您使用的不是ANSI,而是某些特定的终端,尽管您使用的终端相似,但并非所有终端都相同。您的TERM
变量更有可能设置为“xterm”之类的东西,它(省略终端类型)给出
sgr0=\E(B\E[m,
Run Code Online (Sandbox Code Playgroud)
公共部分是\E[m
,它是 的 terminfo 语法\033[m
。每个序列中的其他字符正在重置备用字符集(并且可能取决于终端类型)。