So greifen Sie innerhalb eines Bash-Skripts auf solarisierte Farbwerte zu

So greifen Sie innerhalb eines Bash-Skripts auf solarisierte Farbwerte zu

Ich versuche, meine bash PS1Eingabeaufforderungsfarben entsprechend derSolarisiertes Thema. Ich habesolarisiertinstalliert und funktioniert für iTerm2, aber bisher ist es mir nicht gelungen, eine benutzerdefinierte PS1-Eingabeaufforderung zu erstellen, die zum Thema passt.

Ich habe versucht, Werte wie die folgenden für Cyan zu verwenden, aber am Ende erhalte ich entweder keine Farbe oder die falsche Farbe. \033[0;37m

Die oben genannten Werte habe ich dem folgenden Link entnommen. https://github.com/altercation/solarized/tree/master/iterm2-colors-solarized

Antwort1

Wenn das, was Sie fragen, istANSI-Escapesequenzen, hier ein paar Tipps:

0 Black
1 Red
2 Green
3 Yellow/Brown
4 Blue
5 Pink
6 Cyan
7 White/Gray

Jede davon wird auf die Vordergrund- oder Hintergrundfarbe angewendet.

3_  sets grim    foreground color
9_  sets intense foreground color
4_  sets grim    background color
10_ sets intense background color
# 3-4, 9-10 and a code for a color.

Dadurch wird beispielsweise aus printf "\033[1;44;97m"Ihrem Hintergrund 44(düsteres Blau) ein Vordergrund 97(intensives Weiß).

Es gibt noch weitere nützliche Farbcodes, die Sie ebenfalls verwenden sollten:

0 reset all colors
1 bold
3 italics
4 underline
5 blink
7 inverse

Um die Arbeit damit angenehmer zu gestalten, können Sie eine Reihe von Aliasnamen wie fiblue fred bblackusw. erstellen. Sie können Ihrem auch die folgende Funktion hinzufügen bashrc:

ansi() {
    printf "\033[$1"
}

Anstatt also zu schreiben , \033[1;35mtun Sie es ansi '1;35m', und das Schreiben von Farbaliasen mit dieser Funktion ist komfortabler.

Beachten Sie auch, dass durch das Festlegen einer Hintergrundfarbe die bereits festgelegte Vordergrundfarbe zurückgesetzt wird. Verwenden Sie daher\033[misc;background;foregroundm.

Auf diese Weise können Sie alles malen, was PS1Sie möchten. Hier ist ein Beispiel:

PS1="\033[0;1;36m\u\033[0;1m:\033[1;103;30m\t\033[0m \033[1;92m\$\033[0m \r"

Schauen Sie sich auch anbash_it.

Ich hoffe, ich habe Ihre Frage beantwortet.

verwandte Informationen