使用什么术语来摆脱颜色转义代码?

使用什么术语来摆脱颜色转义代码?

有没有办法摆脱终端输出中的转义代码?

假设即使脚本发送了这些代码,它们也会被终端忽略,并且文本会按原样显示,不带颜色、粗体等。

我需要在 HTML 页面上显示终端输出。

目前我正在使用 javascript 来删除转义代码,但是它变得笨重,因为我收到了字符的输出,并且必须等到收到所有内容然后更新它,从而导致奇怪的效果。

答案1

无论 TERM 的值是什么,程序都可以在 STDOUT 上输出任何内容,包括转义码。但是,将 TERM 设置为“dumb”将有助于大多数程序检查终端功能是否支持颜色。

此外,有些程序在格式化输出之前会检查 STDOUT 是否指向交互式终端,而不是管道或文件。这些程序可以重定向到文件,或通过其他方式进行管道传输,例如catless -r

如果您将问题缩小到转义的子集,即那些改变颜色而不是光标位置的子集,您应该能够检查 ESC,设置一个标志以停止将字符回显到页面上并在“m”之后清除该标志。

相关内容