Lista de caracteres não imprimíveis para prompts bash

3

Eu encontrei alguns documentos listando alguns dos recursos do prompt do bash com caracteres não imprimíveis (por exemplo, \ E [33; 44m para imprimir texto amarelo em fundo azul), mas em todos os lugares que eu olho, eu só acho muito específico exemplos, e nenhuma explicação real desses caracteres especiais, ou uma lista completa de tudo que é possível com esses caracteres.

Às vezes, os exemplos usam um prefixo \ 033 [e às vezes é \ E [ existe diferença entre os dois?

Até agora, sei que o seguinte é possível:

Use a cor: \ E [33; 44m
Mova o cursor para um local específico (10a linha, 20a coluna): \ 033 [10; 20H | Ocultar o cursor: \ E [? 25l
Mostrar o cursor: \ E [? 25h

Existem outras combinações mágicas? Onde posso encontrar uma lista completa desses caracteres especiais e como usá-los?

    
por Fred 25.03.2011 / 21:16

1 resposta

5

Sometimes, the examples use a 3[ prefix, and sometimes it's \E[, is there a difference between both?

Primeira camada: A \ é um "caractere de escape" em C e outras linguagens de programação. 3 e \x1B são escapes octais e hexadecimais no estilo C para o caractere de controle ASCII ESC ( byte hexadecimal 0x1B). \e e \E são parte de C também e também significam o mesmo caractere ESC , mas não são tão comuns.

Qualquer das opções acima, o mesmo ESC será inserido, mas \e será menor do que 3 .

Are there other magic combinations? Where can I find a full list of those special characters and how to use them?

Segunda camada: Similarmente, o ASCII ESC é um prefixo para códigos de escape ANSI usado pelo terminal VT100 e seus descendentes. Os códigos disponíveis não chegam ao bash , mas ao emulador de terminal específico que você está usando. Provavelmente todos suportam os códigos definidos em ECMA-48 , mas é apenas um pequeno subconjunto.

A página Sequências de controle Xterm tem uma lista extensa, mas você vai querer procurar documentação para o que quer que você esteja usando, seja gnome-terminal , Konsole, rxvt ou o que for. Alguns são específicos do console Linux (tty) .

    
por 25.03.2011 / 21:19

Tags