színes szöveg nyomtatása echo használatával

Tudom, hogy színes szöveg echo, például piros színű nyomtatásához a kód: echo -e "\e[1;31m This is red text \e[0m"
és tudom, hogy ebben a példában 31 a piros szín kódja, a többi szín száma pedig:

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 háttérszíneknél pedig a szám 40 és 47 között van.

A kérdésem a következő: mit jelent \e és [ és a m (31 után) pontosan azt jelenti itt?
A man oldalon olvastam, hogy \ e menekülési lehetőség, de nem értettem, mit jelent.

Megjegyzések

  • általában megúszod azokat a karaktereket, amelyek különleges jelentéssel bírnak az aktuális technikai kontextusban. Például a karakterláncokat gyakran idézőjelekbe írják, ", mint ez >. De ha idézőjeleket szeretne egy karaktersorozatba, akkor el kell kerülnie ezeket a karaktereket, így azokat szó szerint, nem pedig elválasztóként értelmezzük. Például: echo "She said \"Hi\"" Ami ezt az esetet illeti (az Ön kérdése ), akkor ' várni kell a jobb válaszra.
  • hermannn.com/programs/terminal_fonts

Válasz

A ANSI menekülési szekvenciák , más néven ECMA-48 CSI szekvenciák, amelyeket eredetileg 1976-ban fogadtak el

Pontosabban a

a “ vezérlő szekvencia bevezető

Típus man console_codes szinte minden * nix disztribúcióban a kódok és néhány dokumentum megtekintéséhez.

Megjegyzések

  • man 4 console_code not man console_code: Az ubuntumomban
  • A kézi oldal neve egy " s " tehát " man console_codes " a megfelelő oldalt kell megjelenítenie.

Válasz

A pontosság érdekében a színkódokat az alábbiakban definiáljuk-

Opening RED= "\033[31m" or "\e[1;31m" CYAN="\033[36m" or "\e[1;31m" Closing = "\033[m" or "\e[0m" 

Tehát alapvetően csak arról van szó, hogy a különböző terminál értelmezi a színkódokat, és te feliratot adsz a szövegedhez ezeken az elemeken belül. Furcsa módja annak, hogy a terminál megértse, mire gondol (például HexCodes vagy Binary ..)

Válasz

szép magyarázat itt (legalábbis szép nekem : -) ). Nem vagyok benne biztos, hogy hasznos lesz-e az Ön számára.

Kezdésként írja be ezt a konzoljára:

echo "^[[0;31;40mIn Color"

Az első karakter egy menekülési karakter, amely két karakternek tűnik: ^ és [. Ennek nyomtatásához nyomja meg a CTRL + V, majd az ESC gombot. Az összes többi karakter normál nyomtatható karakter, így a Színben karakterláncot piros színnel látja. A típus addig marad ebben a színben, amíg vissza nem tér a következő beírásával:

Ezek a kódok a terminál színmódjainak beállításához. Csak normál karakterekkel nyomtatva ezek így néznek ki.

Válasz

\e az Escape karakter gyorsírása. a <ESC>[ és a m az ANSI színvezérlési szekvenciák kezdetének és végének markerei, amelyek az ANSI terminálvezérlés részsorozata . Legtöbbjük <ESC>[ -vel kezdődik, amelyet egy szám követ, majd egy betű, amely azt jelzi, hogy melyik funkciót hajtják végre (pl. Kurzor mozgatása sorra; törlés a sor végére, kurzor visszatérése mentett helyre) helyszín stb.).

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük