编写了一个 bash 函数来显示控制台颜色。
但是,有些颜色好像不能这样显示! (?)
另外,请注意奇怪的“亮黑色”!
(注意:下面的屏幕转储是 xterm 的,但这意味着在控制台模式下使用。我必须使用 xterm 来获取屏幕转储。但它看起来很相似。)
function clr () {
Color_names="bla red gre yel blu mag cya whi"
Color_arr=($Color_names)
for m in {0..15}
do
tput setaf $m
echo -n ${Color_arr[$((m % 8))]}" "
done
echo
tput sgr0
cat /sys/module/vt/parameters/default_red \
/sys/module/vt/parameters/default_grn \
/sys/module/vt/parameters/default_blu | tr "," "\t"
}
答案1
如果你检查tput colors
,你可能会发现答案是 8。显示明亮颜色的方法是通过tput bold
。
这显示了前景和背景的所有 8x8x2 组合(正常和粗体)。
for cmd in sgr0 bold; do
tput $cmd
for i in $(seq 0 7); do
for j in $(seq 0 7); do
tput setaf $i; tput setab $j; echo -n " $i,$j "
done
tput sgr0; echo; tput $cmd
done
done
答案2
请参阅这篇博文: http://www.enigmacurry.com/2009/01/20/256-colors-on-the-linux-terminal/
编辑:如果你只有 8 种颜色的结果,tput-color
你可以使用 ncurses 来解决你的弱点!在 ubuntu 中安装它:
sudo apt-get install ncurses-term
并在 ~/.bashrc 或 ~/bash_profile 中添加以下行:
export TERM=xterm-256color
您可以使用 emacs 命令来代替脚本来查看颜色。在终端中运行 emacsemacs -nw
并输入命令M-x list-colors-display
不管你有什么终端,这个工具都可以在你所有的终端模拟器上运行;-)
答案3
有多种可用于 Linux 控制台的终端描述。最常用的当然是设置为TERM=linux
。
作为替代方案,有TERM=linux-16color
,它会进行粗体/颜色的组合,您可以在@angus的答案中看到。
比较linux
和linux-16color
表明infocmp
:
comparing linux to linux-16color.
comparing booleans.
comparing numbers.
colors: 8, 16.
ncv: 18, 63.
pairs: 64, 256.
comparing strings.
setab: '\E[4%p1%dm', '\E[4%p1%{8}%m%d%?%p1%{7}%>%t;5%e;25%;m'.
setaf: '\E[3%p1%dm', '\E[3%p1%{8}%m%d%?%p1%{7}%>%t;1%e;21%;m'.
和片段使用眨眼和粗体属性(显示硬件的一项功能)来根据输入到和 的%t;5
值%t;1
获得明亮的背景和前景色。tput setab
tput setaf
这是使用 ncurses 测试程序完成的屏幕截图linux-16color
: