Я хочу перечислить все цвета, которые я могу использовать в консоли 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) или, по крайней мере, достаточно хорошо.
Номер кода цвета отображается в цветовом блоке. Это то, что вы используете в подсказке или в другом месте, чтобы задать цвет.