Consulte este link http://www.termsys.demon.co.uk/vtansi.htm . Como diz Anthon, \033
é o código octal no estilo C para um caractere de escape. Ele [999D
move o cursor para trás 999 colunas, presumivelmente uma maneira de força bruta de chegar ao início da linha. [2K
apaga a linha atual. \r
é um retorno de carro que moverá o cursor de volta ao início da linha atual e é uma sequência de escape no estilo C em vez de uma sequência de controle terminal.
Atualizar
Como outras pessoas apontaram, essas seqüências de controle não têm nada a ver com elas mesmas, bash
mas sim o dispositivo / emulador terminal no qual o texto aparece. Era uma vez comum que essas seqüências fossem interpretadas por uma peça de hardware completamente diferente. Originalmente, cada um responderia a conjuntos de códigos completamente diferentes. Para lidar com isso, as bibliotecas termcap
e terminfo
foram usadas para escrever código compatível com vários terminais. O tput
comando é uma interface para a terminfo
biblioteca (o termcap
suporte também pode ser compilado) e é uma maneira mais robusta de criar sequências compatíveis.
Dito isto, também há o padrão ANSI X3.64 ou ECMA-48 . Qualquer implementação moderna de terminal usará isso. terminfo
e termcap
ainda são relevantes, pois a implementação pode estar incompleta ou incluir extensões fora do padrão; no entanto, para a maioria dos propósitos, é seguro supor que sequências ANSI comuns funcionem.
O xterm
FAQ fornece algumas informações interessantes sobre as diferenças entre os modernos emuladores de terminal (muitos tentam emular- xterm
se) e como as xterm
seqüências se relacionam com os terminais VT100 mencionados no link acima. Ele também fornece uma lista definitiva de xterm
seqüências de controle .
Também é comum usar o console do Linux, é claro, uma lista definitiva de seqüências de controle para ele man console_codes
, além de uma comparação com xterm
.