サブシェルを回避するために、ANSI互換端末のtput sgr0
に相当するANSIエスケープは何ですか?
infocmp
の出力を見ると、それに答えることができます。
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
で、これは\033[m
のterminfo構文です。各シーケンスの他の文字は、代替文字セットをリセットしています(端末の種類によって異なります)。