imprimarea textului colorat folosind echo

Știu că pentru imprimarea unui text colorat folosind echo, de exemplu culoarea roșie, codul este: echo -e "\e[1;31m This is red text \e[0m"
și știu că în acest exemplu, 31 este cod de culoare roșie, iar numărul celorlalte culori este:

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 

iar pentru culorile de fundal, numărul este de la 40 la 47

Întrebarea mea este următoarea: ce înseamnă \e și [ și m (după 31) înseamnă exact aici?
Am citit în pagina de manual că \ e escape, dar nu am înțeles ce înseamnă.

Comentarii

  • În în general, scăpați de caractere care au semnificații speciale în contextul tehnic actual. De exemplu, șirurile sunt adesea scrise între ghilimele, " astfel ". Dar dacă doriți ghilimele într-un șir, trebuie să scăpați de aceste caractere, astfel încât acestea să fie interpretate literal și nu ca delimitatori. De exemplu, echo "She said \"Hi\"" În ceea ce privește acest caz (întrebarea dvs. ), ' va trebui să așteptați un răspuns mai bun.
  • hermannn.com/programs/terminal_fonts

Răspuns

Acestea fac parte din „Elementele secvenței” din Secvențe de evadare ANSI cunoscute și sub numele de ECMA-48 Secvențe CSI care au fost adoptate inițial în 1976

Mai precis

este „ Introducere a secvenței de control

Tastați man console_codes în aproape orice distribuție * nix pentru a vedea codurile și unele documente.

Comentarii

  • man 4 console_code not man console_code: În ubuntu-ul meu
  • Numele paginii manuale se termină cu un " s " deci " man console_codes " ar trebui să afișeze pagina corectă.

Răspuns

Pentru a fi precise codurile de culoare sunt definite ca mai jos-

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

Deci, în principiu, este doar modul în care diferitele terminale interpretează codurile de culoare și îți subtitrează textul în aceste elemente. Este un mod ciudat de a face terminalul să înțeleagă ce vrei să spui (cum ar fi HexCodes sau Binary ..)

Răspuns

Am găsit un explicație frumoasă aici (cel puțin, frumos pentru mine : -) ). Nu sunt sigur dacă vă va fi util.

Pentru a începe, tastați acest lucru pe consola dvs.:

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

Primul caracter este un caracter de evadare, care arată ca două caractere, ^ și [. Pentru a putea imprima acest lucru, trebuie să apăsați CTRL + V și apoi tasta ESC. Toate celelalte caractere sunt caractere tipărite normale, astfel încât să vedeți șirul În culoare în roșu. Tipul rămâne acea culoare până când reveniți înapoi, tastând acest lucru:

Sunt coduri de evacuare pentru a seta modurile de culoare în terminal. Doar că, atunci când sunt tipărite cu caractere obișnuite, arată așa.

Răspuns

\e este prescurtarea personajului Escape. <ESC>[ și m sunt markerii pentru începutul și sfârșitul secvențelor de control al culorii ANSI, care sunt un subset al controlului terminalului ANSI secvențiat . Cele mai multe dintre ele încep cu <ESC>[, urmate de un număr, urmat de o literă care indică ce funcție este implementată (de exemplu, mutați cursorul pe linie; ștergeți la sfârșitul liniei, reveniți la cursorul salvat locație, etc.).

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *