tput 在加载颜色代码时是否会自动检查颜色能力?

tput 在加载颜色代码时是否会自动检查颜色能力?

当使用tput setaf和 时tput sgr0,如果会话不是类似于 tty 的或者未检测到颜色支持,它是否会自动输出任何内容?

那么我这样做可以吗?

declare -r styleRed=$(tput setaf 1)
declare -r styleReset=$(tput sgr0)

或者我需要这么做吗?

if [ -t 1 ] && [ "$(tput colors)" -gt 7 ]; then
  declare -r styleRed=$(tput setaf 1)
  declare -r styleReset=$(tput sgr0)
else
  declare -r styleRed=
  declare -r styleReset=
fi

相关内容