GNU/Linux >> Tutoriales Linux >  >> Linux

Después de editar el .bashrc, ¿obtuve fantasmas en el aviso?

Esta pregunta ya tiene respuestas aquí :¿Por qué mi aviso de bash tiene errores cuando navego por el historial? [duplicado]

(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 \] .


Linux
  1. ¿Por qué Bashrc comprueba si el shell actual es interactivo?

  2. Precedencia de los operadores lógicos de Shell &&, ||?

  3. ¿Regenerar .bashrc desde Shell actual?

  4. ¿Cuál es la ubicación correcta de la variable Shell de PS1?

  5. ¿Qué debo hacer cuando recibo el mensaje de error KEYEXPIRED después de una actualización de apt-get?

.bashrc frente a .bash_profile

¿Qué es el Shell en Linux?

¿Directorio actual abreviado en el indicador de Shell?

El bucle while en los scripts de Shell

SELinux en el mundo real

¿Cuál es la mejor manera de establecer una variable de entorno en .bashrc?