
Ich schreibe Skripte zum Initialisieren und Konfigurieren eines großen Systems mit vielen Komponenten.
Jede Komponente hat ihre eigene Protokolldatei.
Ich möchte die Farbe des Komponentendateinamens auf Rot ändern, wenn bei der Installation/Konfiguration ein Fehler auftritt.
Wie kann ich es tun?
Antwort1
Google findet die Antwort für Sie. Drucken Sie „Hallo Welt“ in Rot:
echo -e "\033[0;31mHello world\033[0m"
Erklärt
<esc><attr>;<foreground>m
<esc> = \033[ ANSI escape sequence, some environments will allow \e[ instead
<attr> = 0 Normal text - bold possible with 1;
<foreground> = 31 30 + 1 = Color red - obviously!
m = End of sequence
\033[0m Reset colors (otherwise following lines will be red too)
Ansehenhttp://en.wikipedia.org/wiki/ANSI_Escapecodefür eine vollständige Liste der Farben und anderer Funktionen (Fett usw.).
Der Befehl tput, sofern verfügbar, erleichtert das Leben:
echo -e "$(tput setaf 1)Hello world$(tput sgr0)"
Kann zur einfacheren Verwendung sogar Sequenzen in Variablen speichern.
ERR_OPEN=$(tput setaf 1)
ERR_CLOSE=$(tput sgr0)
echo -e "${ERR_OPEN}Hello world${ERR_CLOSE}"
Antwort2
Wenn Sie Farben als Variablen festlegen möchten, kann das Folgende zum Einrichten eines Farbfelds für Bash-Skripte hilfreich sein
COL_BLACK="\x1b[30;01m"
COL_LIGHTBLACK="\x1b[30;11m"
COL_BLUE="\x1b[34;01m"
COL_LIGHTBLUE="\x1b[34;11m"
COL_CYAN="\x1b[36;01m"
COL_LIGHTCYAN="\x1b[36;11m"
COL_GRAY="\x1b[37;11m"
COL_LIGHTGRAY="\x1b[37;01m"
COL_GREEN="\x1b[32;01m"
COL_LIGHTGREEN="\x1b[32;11m"
COL_PURPLE="\x1b[35;01m"
COL_LIGHTPURPLE="\x1b[35;11m"
COL_RED="\x1b[31;01m"
COL_LIGHTRED="\x1b[31;11m"
COL_YELLOW="\x1b[33;01m"
COL_LIGHTYELLOW="\x1b[33;11m"
COL_RESET="\x1b[39;49;00m"
Antwort3
http://webhome.csc.uvic.ca/~sae/seng265/fall04/tips/s265s047-tips/bash-using-colors.html.
Dies könnte sein, was Sie möchten.
So können Sie $?
den Prozess einer Komponentendatei erhalten, dann wählen Sie
echo -e "\e[1;31m"<the-component-file-name>\e[0m"
um den Text rot zu machen.