bash PS1 256 色加粗

bash PS1 256 色加粗

我想列出可以在 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 中),或者至少足够好。

颜色代码编号显示在色块中。这是您在提示或其他地方用来设置颜色的内容。

相关内容