Ich möchte alle Farben auflisten, die ich in der Bash-Konsole verwenden kann. Und danach möchte ich meine Eingabeaufforderung so einstellen, dass sie fett und orange ist. Ich verwende dies, um Farbcodes für mich aufzulisten:
for code in {0..255}; do echo -e "\e[38;05;${code}m $code: Test"; done
Aber die Frage ist, wie man es schafftdeutlichund die Farben behalten?
Ich habe hier nach Ratschlägen gesucht, wie man es fett macht:http://misc.flogisoft.com/bash/tip_colors_and_formattingaber ich konnte keinen Code finden, der Fettdruck und eine von 256 Farben kombiniert.
Antwort1
Sie können es wie folgt schreiben:
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
Sie können tput bold
nur einmal ausführen, sofern Sie nicht zurücksetzenMutmit einem tput sgr0
oder \e[m
oder \e[0m
.
Antwort2
Als Ergänzung zu Stephanes Beispiel hier eine schnelle Shell-Funktion zum Auflisten aller 256 Farben:
#!/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
Dies ist ein schneller „Port“ einer Zsh-Funktion, die ich in Bash ausführen muss. Sie scheint (in Bash) zu funktionieren, oder zumindest gut genug.
Die Farbcodenummer wird im Farbblock angezeigt. Diese würden Sie in Ihrer Eingabeaufforderung oder anderswo verwenden, um die Farbe festzulegen.