Ver este enlace http://www.termsys.demon.co.uk/vtansi.htm . Como dice Anthon, \033
es el código octal de estilo C para un personaje de escape. La [999D
mueve el cursor hacia atrás 999 columnas, presumiblemente una forma de fuerza bruta de llegar al inicio de la línea. [2K
borra la línea actual. \r
es un retorno de carro que moverá el cursor al inicio de la línea actual y es una secuencia de escape de estilo C en lugar de una secuencia de control de terminal.
Actualizar
Como han señalado otras personas, estas secuencias de control no son nada que hacer bash
, sino el dispositivo terminal / emulador en el que aparece el texto. Érase una vez que era común que estas secuencias fueran interpretadas por una pieza de hardware completamente diferente. Originalmente, cada uno respondería a conjuntos de códigos completamente diferentes. Para lidiar con esto, las bibliotecas termcap
y se terminfo
utilizan para escribir código compatible con múltiples terminales. El tput
comando es una interfaz para la terminfo
biblioteca ( termcap
también se puede compilar el soporte) y es una forma más sólida de crear secuencias compatibles.
Dicho esto, también existe el estándar ANSI X3.64 o ECMA-48 . Cualquier implementación de terminal moderna usará esto. terminfo
y termcap
siguen siendo relevantes ya que la implementación puede estar incompleta o incluir extensiones no estándar, sin embargo, para la mayoría de los propósitos, es seguro asumir que las secuencias ANSI comunes funcionarán.
Las xterm
preguntas frecuentes proporcionan información interesante sobre las diferencias entre los emuladores de terminal modernos (muchos solo intentan emularse xterm
) y cómo las xterm
secuencias se relacionan con los terminales VT100 mencionados en el enlace anterior. También proporciona una lista definitiva de xterm
secuencias de control .
Por supuesto, también se usa comúnmente la consola Linux, en la que se puede encontrar una lista definitiva de secuencias de control man console_codes
, junto con una comparación con xterm
.