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
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
ikkeman 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.).
echo "She said \"Hi\""
Hvad dette tilfælde angår (dit spørgsmål ), skal du ' vente på et bedre svar.