So che per stampare un testo colorato utilizzando echo, ad esempio il colore rosso, il codice è: echo -e "\e[1;31m This is red text \e[0m"
e so che in questo esempio 31 è il codice del colore rosso e il numero degli altri colori è:
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
e per i colori di sfondo, il numero è compreso tra 40 e 47
la mia domanda è questa: cosa fa \e
e [
e m
(dopo 31) significano esattamente qui?
Ho letto nella pagina man che \ e è escape, ma non ho capito cosa significa.
Commenti
Risposta
Fanno parte degli “Elementi sequenza” di sequenze di escape ANSI note anche come ECMA-48 sequenze CSI che furono originariamente adottate nel 1976
Più specificamente il
è “ Control Sequence Introducer ”
Digita man console_codes
in quasi tutte le distro * nix per vedere i codici e alcuni documenti.
Commenti
-
man 4 console_code
nonman console_code
: Nel mio ubuntu - Il nome della pagina di manuale termina con " s " so " man console_codes " dovrebbe far apparire la pagina corretta.
Risposta
Per essere precisi, i codici colore sono definiti come di seguito-
Opening RED= "\033[31m" or "\e[1;31m" CYAN="\033[36m" or "\e[1;31m" Closing = "\033[m" or "\e[0m"
Quindi fondamentalmente è solo il modo in cui i diversi terminali interpretano i codici colore e tu inserisci la didascalia del testo allinterno di questi elementi. È un modo strano per far capire al terminale cosa intendi (come HexCodes o Binary ..)
Answer
Ho trovato un bella spiegazione qui (almeno, bella per me : -) ). Non sono sicuro che ti sarà utile.
Per iniziare, digita questo sulla tua console:
echo "^[[0;31;40mIn Color"
Il primo carattere è un carattere di escape, che assomiglia a due caratteri, ^ e [. Per poterlo stampare, devi premere CTRL + V e poi il tasto ESC. Tutti gli altri caratteri sono normali caratteri stampabili, quindi vedi la stringa In Color in rosso. Il tipo rimane di quel colore fino a quando non si torna indietro digitando questo:
Sono codici di escape per impostare le modalità di colore nel terminale. È solo che quando vengono stampati con caratteri regolari, hanno questo aspetto.
Risposta
\e
è una scorciatoia per il carattere Escape. <ESC>[
e m
sono gli indicatori per linizio e la fine delle sequenze di controllo del colore ANSI, che sono un sottoinsieme della sequenza di controllo del terminale ANSI . La maggior parte inizia con <ESC>[
, seguito da un numero, seguito da una lettera che indica quale funzione è stata implementata (ad es. Sposta il cursore sulla riga; cancella fino alla fine della riga, riporta il cursore su salvata posizione, eccetera).
echo "She said \"Hi\""
In questo caso (la tua domanda ), ' dovrai aspettare una risposta migliore.