检查终端是否支持 24 位/真彩色

Tom*_*ale 15 linux colors terminal color-management

在 shell 脚本中,如何以编程方式测试终端是否支持 24 位或真彩色?


相关:这个问题是关于打印一个 24 位/真彩色测试图案以进行眼球验证

Tom*_*ale 13

此消息来源说要检查是否$COLORTERM包含24bittruecolor

sh

[ "$COLORTERM" = truecolor ] || [ "$COLORTERM" = 24bit ]
Run Code Online (Sandbox Code Playgroud)

bash/ zsh:

[[ $COLORTERM =~ ^(truecolor|24bit)$ ]]
Run Code Online (Sandbox Code Playgroud)

  • 这不是一个可靠的解决方案。如果未设置 env 变量怎么办? (3认同)
  • 需要注意的一件事:这适用于本地终端,但是当您进入远程机器(例如,`ssh`)或 tmux 会话时,`COLORTERM` 变量将不会传播。 (3认同)
  • @JongwookChoi `ssh -o SendEnv=MYVAR` (2认同)