我是否可以在终端中打印颜色而不使用 .Xresources 中的颜色?例如,echo -e "\033[32m Test"
将打印“Test”,但它的颜色是我在 .Xresources 中定义为绿色的颜色。话虽这么说,我如何打印未定义的颜色,例如#FF0000,而不重新定义我的预设。
答案1
终端(外壳)窗口中的颜色与文件中的颜色没有真正的关系.Xresources
。
如果您想在终端(外壳)窗口中打印颜色,您应该认真考虑该tput
命令。这使用terminfo
数据库生成必要的转义序列来获取颜色(除其他外)。
您可以man 5 terminfo
阅读有关 的部分Color Handling
。这是可用颜色表:
Colour Value RGB
black 0 0, 0, 0
red 1 max,0,0
green 2 0,max,0
yellow 3 max,max,0
blue 4 0,0,max
magenta 5 max,0,max
cyan 6 0,max,max
white 7 max,max,max
并使用setaf
(设置 ANSI 前景)和setab
(设置 ANSI 背景)命令来设置它们。之后用于sgr0
重置它们。
例如
tput setaf 4 # Blue text
tput setab 3 # Yellow background
echo -n "This is blue text on a yellow background"
tput sgr0 # Reset colours
echo
答案2
某些终端仿真器支持直接 RGB 真彩色。看https://gist.github.com/XVilka/8346728了解详细信息和使用示例。