(2 respuestas)
Cerrado hace 4 años.
Agregué lo siguiente a mi ~/.bashrc
:
export PS1="\e[0;35m[\[email protected]\h \W]\$ \e[m "
echo -e "\e[0;35mYOU ARE ON THE LIVE SERVER !!\e[0m"
lamentablemente, ahora, cada vez que pego algo largo en bash se vuelve squiffy y fantasma tab
los personajes aparecen por toda la pantalla y las líneas se comen entre sí, ¿alguien sabe por qué?
Respuesta aceptada:
También tuve en el pasado el problema de los códigos de color ANSI que se estropeaban con la navegación de la línea de comandos; necesita poner los códigos ANSI alrededor de \[ \]
para que el shell de comandos sepa cómo (no) tenerlos en cuenta como parte de la cadena de entrada.
Como en:
export PS1="\[\e[0;35m\][\[email protected]\h \W]\$\[\e[m\] "
echo -e "\[\e[0;35m\]YOU ARE ON THE LIVE SERVER !!\[\e[0m\]"
Alguna explicación de por qué el shell necesita \[
y \]
:Para dibujar el indicador en las posiciones correctas en la matriz de caracteres de una terminal, el shell necesita saber la longitud correcta de la cadena del indicador, que es la cantidad de imprimible personajes, yo. mi. no controla los caracteres ni las secuencias de caracteres.
Sin embargo, el shell no sabe qué secuencias de caracteres considera la terminal como imprimibles. Por lo tanto, es necesario proporcionar sugerencias al shell para distinguir entre secuencias imprimibles y no imprimibles, que es el propósito de \[
y \]
.