Wiem, że w przypadku drukowania kolorowego tekstu za pomocą echa, na przykład koloru czerwonego, kod jest następujący: echo -e "\e[1;31m This is red text \e[0m"
i wiem, że w tym przykładzie 31 to kod koloru czerwonego, a liczba innych kolorów to:
Black 0;30 Dark Gray 1;30 Blue 0;34 Light Blue 1;34 Green 0;32 Light Green 1;32 Cyan 0;36 Light Cyan 1;36 Red 0;31 Light Red 1;31 Purple 0;35 Light Purple 1;35 Brown 0;33 Yellow 1;33 Light Gray 0;37 White 1;37
a dla kolorów tła liczba to od 40 do 47
moje pytanie brzmi: co robi \e
i [
a m
(po 31) dokładnie oznacza tutaj?
Czytałem na stronie podręcznika, że \ e to escape, ale nie rozumiałem, co to znaczy.
Komentarze
Odpowiedź
Są częścią „Sekwencji elementów” sekwencje specjalne ANSI znane również jako ECMA-48 sekwencje CSI, które zostały pierwotnie przyjęte w 1976 roku
A dokładniej
to „ wprowadzający sekwencję kontrolną ”
Wpisz man console_codes
w prawie każdej dystrybucji * nix, aby zobaczyć kody i niektóre dokumenty.
Komentarze
-
man 4 console_code
nieman console_code
: W moim ubuntu - Nazwa strony podręcznika kończy się na " s " so " man console_codes " powinno wywołać właściwą stronę.
Odpowiedź
Aby być precyzyjnym, kody kolorów są zdefiniowane jak poniżej-
Opening RED= "\033[31m" or "\e[1;31m" CYAN="\033[36m" or "\e[1;31m" Closing = "\033[m" or "\e[0m"
Zasadniczo jest to sposób, w jaki różne terminale interpretują kody kolorów i podpisujesz swój tekst w tych elementach. To dziwny sposób, aby terminal zrozumiał, co masz na myśli (np. HexCodes lub Binary ..)
Odpowiedź
Znalazłem ładne wyjaśnienie tutaj (przynajmniej miło dla mnie : -) ). Nie jestem pewien, czy to Ci się przyda.
Aby rozpocząć, wpisz to w konsoli:
echo "^[[0;31;40mIn Color"
Pierwszy znak to znak zmiany znaczenia, który wygląda jak dwa znaki, ^ i [. Aby móc to wydrukować, musisz nacisnąć CTRL + V, a następnie klawisz ESC. Wszystkie pozostałe znaki to normalne znaki drukowalne, więc ciąg w kolorze jest wyświetlany na czerwono. Typ pozostaje w tym kolorze, dopóki nie wrócisz, wpisując to:
Są to kody zmiany znaczenia do ustawiania trybów kolorów w terminalu. Czy tylko tak wyglądają po wydrukowaniu zwykłych znaków.
Odpowiedź
\e
jest skrótem od znaku Escape. <ESC>[
i m
to znaczniki początku i końca sekwencji sterowania kolorami ANSI, które są podzbiorem sekwencji sterowania terminalem ANSI . Większość z nich zaczyna się od <ESC>[
, po którym następuje liczba, po której następuje litera wskazująca, która funkcja jest zaimplementowana (np. Przesuń kursor do wiersza; wyczyść do końca wiersza, wróć kursor do zapisanej lokalizacja i tak dalej).
echo "She said \"Hi\""
Tak jak w tym przypadku (Twoje pytanie ), ' będziesz musiał poczekać na lepszą odpowiedź.