Vorwort
Jeder weiß, dass bei Verwendung des Befehls ls zum Auflisten von Dateien unterschiedliche Dateitypen in unterschiedlichen Farben angezeigt werden. Wie erreicht man also eine solche farbige Textausgabe? Die Antwort ist nicht kompliziert, egal ob Shell oder C-Sprache verwendet wird.
1. Implementierungsmethode unter Shell
Lassen Sie uns zunächst darüber sprechen, wie Sie es unter Shell implementieren. Dies kann mit dem Echo-Befehl erreicht werden. Siehe folgendes Beispiel:
echo -e "33[32mHello, world!"
Wenn Sie diesen Befehl in das Terminal eingeben, stellen Sie fest, dass das System „Hallo, Welt“ ausgibt. in grün?!“, wurde nicht nur das, sondern auch die darauffolgende Eingabeaufforderung grün? Mach dir keine Sorgen, hör mir einfach zu. Die Option -e des Befehls echo aktiviert die Interpretation des Backslash-Escape-Zeichens (ie) durch das Terminal. 33 in Anführungszeichen wird verwendet, um unkonventionelle Zeichenfolgen zu leiten. Die folgende Funktion besteht darin, die Vordergrundfarbe auf Grün zu setzen, der Buchstabe m stellt die festgelegte Attributkategorie dar und die Zahl stellt dar der Attributwert.
Einstellungen können individuell verwendet werden, zum Beispiel:
echo -e "33[0m"
Die Funktion dieser Befehlszeile besteht darin, die Attribute auf ihre Standardwerte zurückzusetzen, d. h Beispielsweise wird das 0m-Einstellungselement verwendet, um den Standardwert wiederherzustellen. Funktioniert jetzt auf Ihrem Terminal alles ordnungsgemäß?
Sobald Sie dies verstanden haben, ist der Rest einfach. Mit diesem Befehl können Sie neben der Festlegung der Vordergrundfarbe des Textes auch viele Eigenschaften festlegen.
Weitere Einstellungen sind unten aufgeführt:
33[0m 关闭所有属性 33[1m 设置高亮度 33[4m 下划线 33[5m 闪烁 33[7m 反显 33[8m 消隐 33[30m 至 33[37m 设置前景色 33[40m 至 33[47m 设置背景色 33[nA 光标上移n行 33[nB 光标下移n行 33[nC 光标右移n行 33[nD 光标左移n行 33[y;xH设置光标位置 33[2J 清屏 33[K 清除从光标到行尾的内容 33[s 保存光标位置 33[u 恢复光标位置 33[?25l 隐藏光标 33[?25h 显示光标
Die durch jede Zahl dargestellten Farben sind wie folgt:
Wörter Hintergrundfarbbereich: 40----49
40: Schwarz
41: Tiefrot
42: Grün
43: Gelb
44: Blau
45: Lila
46: Dunkelgrün
47: Weiß
Zeichenfarbe: 30-----------39
30: Schwarz
31: Rot
32: Grün
33: Gelb
34: Blau
35: Lila
36: Dunkelgrün
37: Weiß
Darüber hinaus können mehrere Einstellungselemente desselben Typs mit einem Semikolon in der Mitte kombiniert werden ( ;) getrennt.
lautet wie folgt:
echo -e "33[20;1H33[1;4;32mHello,world33[0m"
Diese Befehlszeile bewegt zuerst 33[20;1H den Cursor zur 20. Zeile und Spalte 1 des Terminals und dann 33[1; 4;32m Setzen Sie die Texteigenschaften auf hervorgehoben, unterstrichen und grün und geben Sie dann Hello, world; aus. Schließlich 33[0m stellen Sie die Terminaleigenschaften auf ihre Standardwerte wieder her, sodass Sie die Eingabeaufforderung nach dem nicht sehen Befehl ist abgeschlossen Es hat sich auch geändert.
Eine komplexe Steuerung der Terminalausgabe kann durch die Kombination der oben genannten Befehle erreicht werden.
2. Wie implementiert man es in der C-Programmierung?
Nachdem Sie die obige Implementierungsmethode in Shell verstanden haben, ist es sehr einfach, sie in C zu implementieren. Man kann sagen, dass Sie nur die printf-Funktion verwenden müssen, um das obige Echo -e zu ersetzen:
int color = 32; printf("33[20;1H33[1;4;%dmHello, world.33[0m", color);
Dieses Beispiel ähnelt dem letzten Beispiel in Die obige Shell, außer dass hier der Farbwert übergeben wird Die variable Farbe wird angegeben (natürlich kann sie auch direkt angegeben werden).
3. Lenovo
Wenn Sie dies sehen, fragen Sie sich vielleicht, ob ähnliche Methoden zur Steuerung der Terminalausgabe in anderen Programmiersprachen verwendet werden können? Die Antwort ist ja! In Python kann die Ausgabe beispielsweise wie folgt aussehen:
color=32 print “33[20;1H33[1;4;%dHello, world.33[0m"%color
Der Effekt dieses Beispiels ist der gleiche wie im obigen C-Beispiel.
Zusammenfassung
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, der Inhalt dieses Artikels kann Ihnen beim Lernen oder Arbeiten helfen kann eine Nachricht hinterlassen, um zu kommunizieren.
Für ein tieferes Verständnis der Shell-Ausgabefarben- und Steuerungsartikel beachten Sie bitte die chinesische PHP-Website!