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 中),或至少足夠好。

顏色代碼編號顯示在色塊中。這是您在提示或其他地方用來設定顏色的內容。

相關內容