å trykke farget tekst ved hjelp av ekko

Jeg vet at for å skrive ut en farget tekst med ekko, for eksempel rød farge, er koden: echo -e "\e[1;31m This is red text \e[0m"
og jeg vet at i dette eksemplet er 31 koden med rød farge og antallet andre farger 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 bakgrunnsfarger er tallet 40 til 47

Mitt spørsmål er dette: hva gjør \e og [ og m (etter 31) betyr akkurat her?
Jeg leste på mansiden at \ e er rømning, men jeg forstod ikke hva det betyr.

Kommentarer

  • I generelt, unnslipper du tegn som har spesielle betydninger i den gjeldende tekniske konteksten. For eksempel skrives strenger ofte innenfor anførselstegn, " som dette ". Men hvis du vil ha anførselstegn i en streng, må du unnslippe disse tegnene slik at de blir tolket bokstavelig og ikke som avgrensere. For eksempel echo "She said \"Hi\"" Når det gjelder dette tilfellet (spørsmålet ditt ), må du ' vente på et bedre svar.
  • hermannn.com/programs/terminal_fonts

Svar

De er en del av «Sekvenselementene» til ANSI escape-sekvenser også kjent som ECMA-48 CSI-sekvenser som opprinnelig ble adoptert i 1976

Mer spesifikt

er « Kontrollsekvensintrodusent »

Type man console_codes i nesten hvilken som helst * nix-distro for å se kodene og noen dokumenter.

Kommentarer

  • man 4 console_code ikke man console_code: I min ubuntu
  • Den manuelle sidenavnet slutter med en " s " så " mannskonsollkoder " skal få opp riktig side.

Svar

For å være nøyaktig er fargekoder definert som nedenfor-

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

Så i utgangspunktet er det akkurat slik forskjellige terminaler tolker fargekoder, og du tekster teksten i disse elementene. Det er en merkelig måte å få terminalen til å forstå hva du mener (som HexCodes eller Binary ..)

Svar

Jeg fant en fin forklaring her (i det minste fint for meg : -) ). Jeg er ikke sikker på om det vil være nyttig for deg.

For å starte, skriv dette på konsollen:

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

Det første tegnet er et escape-tegn, som ser ut som to tegn, ^ og [. For å kunne skrive ut dette, må du trykke CTRL + V og deretter ESC-tasten. Alle de andre tegnene er vanlige tegn som kan skrives ut, slik at du ser strengen i farge i rødt. Typen forblir den fargen til du vender tilbake ved å skrive denne:

De er rømningskoder for å angi fargemodusene i terminalen. Er det bare når de skrives ut med vanlige tegn, ser de ut slik.

Svar

\e er stenografi for Escape-karakteren. <ESC>[ og m er markørene for begynnelsen og slutten av ANSI fargekontrollsekvenser, som er en delmengde av ANSI terminal kontroll sekvensert . De fleste av dem starter med <ESC>[, etterfulgt av et tall, etterfulgt av en bokstav som indikerer hvilken funksjon som implementeres (f.eks. Flytt markør til linje; tøm til slutten av linjen, retur markøren til lagret beliggenhet osv.).

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *