udskrivning af farvet tekst ved hjælp af ekko

Jeg ved, at til udskrivning af en farvet tekst ved hjælp af ekko, for eksempel rød farve, er koden: echo -e "\e[1;31m This is red text \e[0m"
og jeg ved, at 31 i dette eksempel er kode for rød farve, og antallet af andre farver er:

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 

og for baggrundsfarver er antallet 40 til 47

mit spørgsmål er dette: hvad betyder \e og [ og m (efter 31) betyder præcist her?
Jeg læste på mandsiden, at \ e er flugt, men jeg forstod ikke, hvad det betyder.

Kommentarer

  • I generelt undslipper du tegn, der har særlig betydning i den aktuelle tekniske sammenhæng. F.eks. skrives strenge ofte inden for anførselstegn, " som denne " Men hvis du vil have anførselstegn i en streng, skal du undslippe disse tegn, så de fortolkes bogstaveligt og ikke som afgrænsere. For eksempel echo "She said \"Hi\"" Hvad dette tilfælde angår (dit spørgsmål ), skal du ' vente på et bedre svar.
  • hermannn.com/programs/terminal_fonts

Svar

De er en del af “sekvenselementerne” i ANSI escape-sekvenser også kendt som ECMA-48 CSI-sekvenser, som oprindeligt blev vedtaget i 1976

Mere specifikt

er “ Control Sequence Introducer

Type man console_codes i næsten enhver * nix-distro for at se koder og nogle dokumenter.

Kommentarer

  • man 4 console_code ikke man console_code: I min ubuntu
  • Den manuelle sidenavn slutter med en " s " så " mand konsol_koder " skal åbne den korrekte side.

Svar

For at være præcis defineres farvekoder som nedenfor-

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

Så dybest set er det bare den måde, som forskellige terminaler fortolker farvekoder på, og du billedtekst din tekst inden for disse elementer. Det er en underlig måde at få terminalen til at forstå, hvad du mener (som HexCodes eller Binary).

Svar

Jeg fandt en god forklaring her (i det mindste dejligt for mig : -) ). Jeg er ikke sikker på, om det vil være nyttigt for dig.

For at starte, skriv dette på din konsol:

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

Det første tegn er et escape-tegn, der ligner to tegn, ^ og [. For at kunne udskrive dette skal du trykke på CTRL + V og derefter på ESC-tasten. Alle de andre tegn er normale tegn, der kan udskrives, så du ser strengen i farve i rødt. Typen forbliver den farve, indtil du vender tilbage ved at skrive denne:

De er flugtkoder for at indstille farvetilstande i terminalen. Er det bare, når de udskrives med almindelige tegn, ser de sådan ud.

Svar

\e er stenografi for Escape-karakteren. <ESC>[ og m er markørerne for begyndelsen og slutningen af ANSI-farvekontrolsekvenser, som er en delmængde af ANSI-terminal kontrol sekventeret . De fleste af dem starter med <ESC>[, efterfulgt af et tal efterfulgt af et bogstav, der angiver, hvilken funktion der implementeres (f.eks. Flyt markør til linje; ryd til slutningen af linjen, returner markøren til gemt placering osv.).

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *