当我从打印彩色输出(例如ls或gcc)的终端执行命令时,将打印彩色输出。根据我的理解,该过程实际上是在输出ANSI 转义码,并且终端格式化颜色。
ls
gcc
但是,如果我由另一个进程(比如自定义 C 应用程序)执行相同的命令并将输出重定向到应用程序自己的输出,这些颜色不会持续存在。
程序如何决定是否输出彩色格式的文本?是否有一些环境变量?
shell colors process terminal
colors ×1
process ×1
shell ×1
terminal ×1