skriva ut färgad text med eko

Jag vet att för att skriva ut en färgad text med eko, till exempel röd färg, är koden: echo -e "\e[1;31m This is red text \e[0m"
och jag vet att 31 i detta exempel är röd kod och antalet andra färger är:

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 

och för bakgrundsfärger är numret 40 till 47

min fråga är denna: vad gör \e och [ och m (efter 31) betyder exakt här?
Jag läste på mansidan att \ e är flykt, men jag förstod inte vad det betyder.

Kommentarer

  • I allmänt slipper du tecken som har speciell betydelse i det aktuella tekniska sammanhanget. Till exempel skrivs strängar ofta inom citattecken, " så här ". Men om du vill ha citattecken i en sträng måste du fly från dessa tecken så att de tolkas bokstavligt och inte som avgränsare. Till exempel echo "She said \"Hi\"" När det gäller detta fall (din fråga ), du ' du måste vänta på ett bättre svar.
  • hermannn.com/programs/terminal_fonts

Svar

De är en del av ”Sekvenselementen” i ANSI escape-sekvenser även känd som ECMA-48 CSI-sekvenser som ursprungligen antogs 1976

Mer specifikt

är ” Kontrollsekvensintroduktion

Typ man console_codes i nästan vilken * nix-distro som helst för att se koder och några dokument.

Kommentarer

  • man 4 console_code inte man console_code: I min ubuntu
  • Det manuella sidnamnet slutar med en " s " så " man console_codes " ska visa rätt sida.

Svar

För att vara exakt definieras färgkoder som nedan-

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

Så i princip är det precis som olika terminaler tolkar färgkoder och du textar din text inom dessa element. Det är ett udda sätt att få terminalen att förstå vad du menar (som HexCodes eller Binary ..)

Svar

Jag hittade en trevlig förklaring här (åtminstone trevligt för mig : -) ). Jag är inte säker på om det kommer att vara användbart för dig.

För att börja, skriv detta på din konsol:

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

Det första tecknet är ett escape-tecken som ser ut som två tecken, ^ och [. För att kunna skriva ut detta måste du trycka på CTRL + V och sedan på ESC-tangenten. Alla andra tecken är normala utskrivbara tecken, så du ser strängen i färg i rött. Typen förblir den färgen tills du vänder dig tillbaka genom att skriva den här:

De är flykoder för att ställa in färglägen i terminalen. Är det bara att när de skrivs ut med vanliga tecken ser de ut så.

Svar

\e är stenografi för Escape-karaktären. <ESC>[ och m är markörerna för början och slutet av ANSI-färgkontrollsekvenser, som är en delmängd av ANSI-terminalstyrningssekvens . De flesta av dem börjar med <ESC>[, följt av ett nummer följt av en bokstav som anger vilken funktion som implementeras (t.ex. flytta markören till rad; rensa till slutet av raden, återgå markören till sparad plats osv.).

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *