Terminal

tput sgr0 的 ANSI 轉義等效項是什麼?

  • January 18, 2021

為了避免子外殼,tput sgr0ANSI 兼容終端的 ANSI 轉義等效項是什麼?

您可以通過查看以下輸出來回答這個問題infocmp: 使用**-1選項為給定的設置TERM**(即“ansi”)每行列印一個功能,簡化 a grep

infocmp -1 ansi |grep sgr0=

和看到(例如)

sgr0=\E[0;10m,

它告訴你你可以做

printf '\033[0;10m'

獲得相同的效果

tput -T ansi sgr0

但是您使用的不是ANSI,而是一些特定的終端,儘管您使用的終端相似,但並非所有終端都相同。您的**TERM**變數更有可能設置為“xterm”之類的東西,它(省略終端類型)給出

sgr0=\E(B\E[m,

通用部分是**\E[m,它是 的 terminfo 語法\033[m**。每個序列中的其他字元正在重置備用字元集(並且可能取決於終端類型)。

引用自:https://unix.stackexchange.com/questions/470499