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 sei que neste exemplo, 31 é código de cor vermelha e o número de 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 é a seguinte: o que \e
e [
e m
(depois de 31) significam exatamente aqui?
Eu li na página do manual que é escape, mas não entendi o que isso significa.
shell-script
scripting
echo
M0εiπ
fonte
fonte
echo "She said \"Hi\""
quanto a este caso (sua pergunta), você terá que esperar por uma resposta melhor.Respostas:
Eles fazem parte dos 'Elementos de sequência' das sequências de escape ANSI, também conhecidas como sequências ECMA-48 CSI, que foram originalmente adotadas em 1976
Mais especificamente,
[
é o ' Introdutor de Sequência de Controle 'Digite
man console_codes
quase qualquer distro * nix para ver os códigos e alguns documentos.fonte
man 4 console_code
nãoman console_code
: No meu ubuntuPara ser mais preciso, os códigos de cores são definidos como abaixo:
Então, basicamente, é assim que 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 HexCodes ou Binary ..)
fonte
Encontrei uma boa explicação aqui (pelo menos, legal para mim :-) ). Não tenho certeza se será útil para você.
Eles são códigos de escape para definir os modos de cores no terminal. É que quando impressos com caracteres regulares, eles se parecem com isso.
fonte
\e
é uma abreviação para o personagem Escape. the<ESC>[
e them
são os marcadores para o início e o fim das seqüências de controle de cores ANSI, que são um subconjunto do controle de terminal ANSI seqüenciado. A maioria deles começa com<ESC>[
, seguido por um número, seguido de 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 o local salvo etc.).fonte