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
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
ikkeman 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.).
echo "She said \"Hi\""
Når det gjelder dette tilfellet (spørsmålet ditt ), må du ' vente på et bedre svar.