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

Чтобы дополнить пример Стефана, вот быстрая функция оболочки для вывода списка всех 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

Это быстрый "порт" функции zsh, которую мне нужно bash. Кажется, она работает (в bash) или, по крайней мере, достаточно хорошо.

Номер кода цвета отображается в цветовом блоке. Это то, что вы используете в подсказке или в другом месте, чтобы задать цвет.

Связанный контент