tisk barevného textu pomocí echo

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

  • V obecně uniknete znakům, které mají v aktuálním technickém kontextu speciální význam. Řetězce jsou například často psány v uvozovkách, " takto ". Pokud ale chcete uvozovky uvést do řetězce, musíte těmto znakům uniknout, aby byly interpretovány doslovně a nikoli jako oddělovače. Například echo "She said \"Hi\"" Pokud jde o tento případ (vaše otázka ), ' si budete muset počkat na lepší odpověď.
  • hermannn.com/programs/terminal_fonts

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 not man 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.).

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *