bash PS1 256 Farben mit Fettschrift

bash PS1 256 Farben mit Fettschrift

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 boldnur einmal ausführen, sofern Sie nicht zurücksetzenMutmit einem tput sgr0oder \e[moder \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.

verwandte Informationen