Eu sei que para imprimir um texto colorido usando eco, por exemplo cor vermelha, o código é: echo -e "\e[1;31m This is red text \e[0m"
e eu sei que neste exemplo, 31 é o código da cor vermelha e o número das outras cores é:
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 para cores de fundo, o num é de 40 a 47
minha pergunta é esta: o que \e
e [
e m
(após 31) significa exatamente aqui?
Li na página de manual que \ e é escape, mas não entendi o que significa.
Comentários
Resposta
Eles fazem parte dos “Elementos de sequência” de Sequências de escape ANSI também conhecidas como ECMA-48 sequências CSI que foram originalmente adotadas em 1976
Mais especificamente, o
é o “ Introdutor de sequência de controle ”
Digite man console_codes
em quase todas as distros * nix para ver os códigos e alguns documentos.
Comentários
-
man 4 console_code
nãoman console_code
: No meu ubuntu - O nome da página do manual termina com " s " so " man console_codes " deve trazer a página correta.
Resposta
Para ser preciso, os códigos de cores são definidos conforme abaixo-
Opening RED= "\033[31m" or "\e[1;31m" CYAN="\033[36m" or "\e[1;31m" Closing = "\033[m" or "\e[0m"
Basicamente, é apenas a maneira como os diferentes terminais interpretam os códigos de cores e você legenda seu texto dentro desses elementos. É uma maneira estranha de fazer o terminal entender o que você quer dizer (como códigos hexadecimais ou binários ..)
Resposta
Eu encontrei um boa explicação aqui (pelo menos, boa para mim : -) ). Não tenho certeza se será útil para você.
Para começar, digite no console:
echo "^[[0;31;40mIn Color"
O primeiro caractere é um caractere de escape, que se parece com dois caracteres, ^ e [. Para imprimir isso, você deve pressionar CTRL + V e, em seguida, a tecla ESC. Todos os outros caracteres são caracteres normais para impressão, portanto, você vê a string In Color em vermelho. O tipo permanece nessa cor até que você volte a digitar:
Eles são códigos de escape para definir os modos de cor no terminal. É que, quando impressos com caracteres regulares, eles se parecem com isso.
Resposta
\e
é uma abreviatura para o caractere Escape. o <ESC>[
e o m
são os marcadores para o início e o fim das sequências de controle de cores ANSI, que são um subconjunto do controle de terminal ANSI sequenciado . A maioria deles começa com <ESC>[
, seguido por um número, seguido por uma letra indicando qual função está sendo implementada (por exemplo, mover o cursor para a linha; limpar para o final da linha, retornar o cursor para salvo localização, etc.).
echo "She said \"Hi\""
Quanto a este caso (sua pergunta ), você ' terá que esperar por uma resposta melhor.