Tak. Terminale ANSI obsługują kody ucieczki ANSI . Każdy Control Sequence Introducer
( CSI
) kod w następującym formacie:
ESC[<<<CODE>>>
Znak Ascii 27
( ESC
znak) lub 1b
szesnastkowy, następnie lewy nawias kwadratowy, a następnie litera oznaczająca akcję, która ma zostać użyta.
Należy pamiętać, że lista ;
oddzielnych parametrów może zostać dostarczona bezpośrednio przed <<<CODE>>>
parametrem.
Teraz kolory używają podzbioru CSI
kodów, Select Graphic Rendition
kodów. Są to w formie:
ESC[<<<SGR>>>m
SGR
Kod jest przekazywana jako parametr w CSI
. Odpowiednie dla twojego pytania są SGR
kody 30-49. Kody 30–39 ustawiają kolor pierwszego planu. Kody 40–49 ustawiają kolor tła.
30 - Foreground Black
31 - Foreground Red
32 - Foreground Green
33 - Foreground Yellow
34 - Foreground Blue
35 - Foreground Magenta
36 - Foreground Cyan
37 - Foreground White
40 - Background Black
41 - Background Red
42 - Background Green
43 - Background Yellow
44 - Background Blue
45 - Background Magenta
46 - Background Cyan
47 - Background White
Kody 38 i 48 są kodami specjalnymi. Są to te, które pozwalają na użycie wartości RGB. Ich format to:
ESC[38;2;<r>;<g>;<b>m (Foreground)
ESC[48;2;<r>;<g>;<b>m (Background)
Uwaga: alternatywne zastosowania obejmują \x1b[<3 or 4>8;5;<web safe color index>m
. Przy takim użyciu istnieje zupełnie inne kodowanie kolorów. Aby uzyskać więcej informacji, zobacz link u góry tej odpowiedzi.
Kody 39 i 49 ustawiają domyślne kolory pierwszego planu i tła, które są definiowane na zasadzie terminal-terminal.
W praktyce kolory 30–37 40–47 różnią się nieznacznie od tych, które podają na etykietach.
0 - Black
1 - Darker Red
2 - Darker Green
3 - Dark/Yellow or Brown (varies between terminals)
4 - Dark Blue
5 - Dark Magenta
6 - Dark Cyan
7 - Light Grey
Aby uzyskać jasne kolory, należy użyć SGI odważne, 1
. Pogrubienie to mylące imię. Nie pogrubia czcionki. W rzeczywistości zwiększa jasność tekstu. Po zastosowaniu pogrubienia kolory stają się:
0 - Dark Grey
1 - Bright Red
2 - Bright Green
3 - Bright Yellow
4 - Bright Blue
5 - Bright Magenta
6 - Bright Cyan
7 - White
Uwaga: ostatnie dwa bloki liczb kolorów odnoszą się zarówno do przedniego, jak i do tła ( <index> + (30 or 40)
).
Aby usunąć wszystkie style (powrót do trybu domyślnego / normalnego), użyj SGR
0.
CSI
kody nie są wszystkie graficzne. Na przykład ESC[2J
wyczyści twój terminal. ESC[<y>;<x>H
ustawia pozycję kursora (1-indeksowany). Więcej informacji znajduje się w artykule na Wikipedii.
Uwaga: aby je przetestować, użyj echo -e
lub printf
.