管道输出也要有颜色:FORCE_COLOR 命令行强制上色的统一标准
来源: force-color.org — 2026-08-05
概述
一个 2023 年提出的非正式标准 FORCE_COLOR 的官方站点。许多命令行程序支持 NO_COLOR 环境变量来关闭颜色,但当用户想「强制开启」时(尤其管道、less/grep/tee、非交互 CI 环境会自动关掉颜色),各程序的做法五花八门,很多根本不提供此选项。标准给出的约定很简单:输出彩色文本的命令行软件应检查 FORCE_COLOR 环境变量,只要该变量存在且非空(不论取值),就强制启用 ANSI 颜色。文中给出示例实现与 FAQ,并维护一张已支持 FORCE_COLOR 的着色库清单(chalk、supports-color、colorette、ansis 等),号召软件作者在支持 NO_COLOR 的同时补上 FORCE_COLOR。
核心要点
2023 年提出的非正式标准:命令行软件应检查 FORCE_COLOR,变量存在且非空即强制开启 ANSI 颜色
管道、less/grep/tee 以及非交互式 CI 环境常自动禁用颜色,用户需要统一的「强制开启」手段
此前各程序做法不一,很多连强制开启颜色的选项都没有
标准给出示例实现与 FAQ,并维护 chalk、supports-color、colorette、ansis 等已支持清单
呼吁软件在支持 NO_COLOR 之外一并提供 FORCE_COLOR 选项
金句
When this variable is present and not an empty string (regardless of its value), it should force the addition of ANSI color.(只要该变量存在且非空——无论取值是什么——都应强制添加 ANSI 颜色。)
👍 0
点赞
👎 0
沉底
返回 Lobsters 首页