我知道您可以使用转义序列%{\033[0m%}
(代码零)将提示的颜色更改回"默认"颜色(通常在提示之后)。
但是什么是"默认"用于此?
tput setaf $COLOR
设置默认颜色,假设您使用它设置的字体颜色与终端的默认颜色不同?答案 0 :(得分:2)
它依赖于终端,但就现有做法而言,它必须是前者:
另一个建议的选择不正确,因为tput setaf
没有设置"默认颜色",而是一个"当前颜色"。 tput setaf
的任何选择是否与终端的默认颜色相对应(最多)是特定于终端的,因为没有相关的标准单向或另一种。
ECMA 48提供了 SGR 0
的简洁(一行)描述(这是问题中提到的内容),以及 SGR 30-37
, 40-47
(通常用于tput将使用的终端描述的setaf / setab选项)。
还有另一种可能的选择,即tput op
(选择原始颜色对),在多个终端描述中用于发送 {{1} } 和 SGR 39
。同样,这是终端特定的,它与 49
的关系不受任何标准的约束。那些碰巧使用相同的"默认颜色"对于xterm和Linux控制台,但是(阅读ECMA-48)标准没有给出关于"默认颜色"的详细程度。并且没有"视频属性"。
进一步阅读: