我正在为我的终端的PS1
.
我正在使用设置颜色变量tput
;例如,这里是紫色:
PURPLE=$(tput setaf 125)
Run Code Online (Sandbox Code Playgroud)
我如何找到125
其他颜色的颜色代码(例如)?
某处是否有色表指南/备忘单?
我只是不确定什么125
是......有什么方法可以将十六进制颜色转换为setaf
可以使用的数字?
我知道如何在终端中为文本使用 256 种颜色:
printf "\033[38;5;196mhello\n"
Run Code Online (Sandbox Code Playgroud)
但是对于背景颜色,我似乎仅限于基本的8种颜色,即:
printf "\033[41mhello\n"
Run Code Online (Sandbox Code Playgroud)
我怎样才能使用 256 色作为背景色?
我的意思是,终端已经知道颜色,所以应该是可能的。但是语法是什么?
如果相关,我将terminator
用作我的终端模拟器和zsh
我的外壳。
例如,我找到了这些方法,以简单的方式将彩色文本输出到屏幕:
RED="\033[0;31m" # Red color (via ANSI escape code);
NC='\033[0m' # No color (via ANSI escape code);
echo -e "${RED}This text is red. ${NC}" # -e flag allows backslash escapes;
Run Code Online (Sandbox Code Playgroud)
或者:
printf '\e[1;34m%-6s\e[m' "This is blue text"
Run Code Online (Sandbox Code Playgroud)
我还发现:
tput setaf 1; echo "this is red text"
Run Code Online (Sandbox Code Playgroud)
但我从未使用过tput
,我不确定它是否随所有主要发行版(Debian、CetnOS、Arch 等)一起提供。
如何以一种简单的方式以给定的命名通用颜色(如“红色”)输出彩色文本,我可以指望在所有主要发行版上工作,而不使用“凌乱”颜色代码?