printf 具有 RGB 颜色的前景和背景

printf 具有 RGB 颜色的前景和背景

完成了

rst="\e[0m"                         # Reset to default colours
orn="\e[38;2;100;65;0;48;2;0;0;0m"  # Orange on black background

printf '%s\n' "$orn HELLO $rst"

但颜色没有生效。

答案1

您的命令对颜色使用 ANSI 转义码,这可能并非所有终端都支持。也许尝试使用tput大多数终端应该支持的命令,而不是 ANSI 代码:

reset="\[$(tput sgr0)\]"             # Reset to default colors
orange_on_black="\[$(tput setaf 166; tput setab 0)\]"  # Orange on black background

printf '%s\n' "${orange_on_black}HELLO${reset}"

注1:我在 Kali Linux 上使用zsh,两种方法都可以正常工作。

笔记2:我还在集成终端(内置 VSCode)中尝试了这两种方法,但它们都不起作用。

相关内容