Vím, že pro tisk barevného textu pomocí echa, například červené barvy, je kód: echo -e "\e[1;31m This is red text \e[0m"
a vím, že v tomto příkladu je 31 kód červené barvy a počet dalších barev je:
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 pro barvy pozadí je číslo 40 až 47
moje otázka zní takto: co \e
a [
a m
(po 31) zde přesně znamená?
Na manuálové stránce jsem četl, že \ e je únik, ale nerozuměl jsem, co to znamená.
Komentáře
Odpověď
Jsou součástí „Sekvenčních prvků“ ANSI escape sekvence také známé jako ECMA-48 CSI sekvence, které byly původně přijaty v roce 1976
Přesněji řečeno
je „ zavaděč kontrolní sekvence “
Type man console_codes
v téměř každém * nix distro pro zobrazení kódů a některých dokumentů.
Komentáře
-
man 4 console_code
notman console_code
: V mém ubuntu - Název ruční stránky končí znakem " s " tak " muž console_codes " by měla vyvést správnou stránku.
Odpovědět
Přesné barevné kódy jsou definovány níže –
Opening RED= "\033[31m" or "\e[1;31m" CYAN="\033[36m" or "\e[1;31m" Closing = "\033[m" or "\e[0m"
Je to tedy způsob, jakým různé terminály interpretují barevné kódy a v rámci těchto prvků zadáváte text. Je to zvláštní způsob, jak terminál pochopit, co máte na mysli (například HexCodes nebo Binary ..)
Odpověď
Našel jsem pěkné vysvětlení zde (alespoň pro mě hezké : -) ). Nejsem si jistý, jestli to pro vás bude užitečné.
Chcete-li začít, zadejte do konzoly toto:
echo "^[[0;31;40mIn Color"
První znak je únikový znak, který vypadá jako dva znaky ^ a [. Abyste to mohli vytisknout, musíte stisknout CTRL + V a poté klávesu ESC. Všechny ostatní znaky jsou normální tisknutelné znaky, takže řetězec v barvě uvidíte červeně. Typ zůstane v této barvě, dokud se nevrátíte zpět zadáním tohoto:
Jsou to únikové kódy pro nastavení barevných režimů v terminálu. Je to tak, že když jsou vytištěny s běžnými znaky, vypadají takhle.
Odpovědět
\e
je zkratka pro znak Escape. <ESC>[
a m
jsou značky pro začátek a konec sekvencí řízení barev ANSI, které jsou podmnožinou sekvenčního řízení terminálu ANSI . Většina z nich začíná <ESC>[
, následovaným číslem a písmenem označujícím, která funkce je implementována (např. Přesunout kurzor na řádek; vymazat na konec řádku, vrátit kurzor na uložený umístění atd.).
echo "She said \"Hi\""
Pokud jde o tento případ (vaše otázka ), ' si budete muset počkat na lepší odpověď.