我想列出可以在 bash 控制台中使用的所有颜色。之后我想将提示设置为粗体和橙色。我用它来为我列出颜色代码:
for code in {0..255}; do echo -e "\e[38;05;${code}m $code: Test"; done
但问题是如何制作大胆的并保留颜色?
我在这里寻找一些关于使其大胆的建议:http://misc.flogisoft.com/bash/tip_colors_and_formatting但我找不到任何结合粗体和 256 种颜色之一的代码。
答案1
您可以将其写为以下任意一种:
echo -e "\e[1;38;05;${code}m $code: Test"
echo -e "\e[1m\e[38;05;${code}m $code: Test";
echo -e "\e[38;05;${code}m\e[1m $code: Test";
echo -e "\e[38;05;${code};1m $code: Test";
tput bold; tput setaf "$code" # provided the terminfo database is
# properly populated
tput bold
如果不重置,则只能运行一次大胆与tput sgr0
或\e[m
或\e[0m
。
答案2
为了补充 Stephane 的示例,这里有一个快速 shell 函数来列出所有 256 种颜色:
#!/bin/bash
esc=$'\033'
for row in {0..15} ;
do
rowtext=
for col in {0..15};
do
color=$(( $row * 16 + $col))
BG="${esc}[48;5;${color}m"
rowtext=${rowtext}$BG\
if [[ $color -lt 100 ]]; then rowtext=${rowtext}$BG\ ;fi
if [[ $color -lt 10 ]]; then rowtext=${rowtext}$BG\ ;fi
rowtext=${rowtext}$BG${color}
rowtext=${rowtext}$BG\
done
echo "${rowtext}${esc}[00m "
done
这是我必须 bash 的 zsh 函数的快速“移植”。我似乎工作(在 bash 中),或者至少足够好。
颜色代码编号显示在色块中。这是您在提示或其他地方用来设置颜色的内容。