我想列出可以在 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 中),或至少足夠好。
顏色代碼編號顯示在色塊中。這是您在提示或其他地方用來設定顏色的內容。