
Estoy en una nueva instalación de Lubuntu 14.04. Estoy usando LXTerminal y este es el mensaje que estoy configurando a través del archivo .bashrc:
export PS1="\e[0;36m$ \w \e[m"
Supongamos que ingreso un comando de hasta 15 caracteres (y lo ejecuto para que se registre en el historial) (no importa "comando no encontrado"):
$ ~ 012345678901234
012345678901234: command not found
Ahora, si presiono la flecha hacia arriba, recupero mi comando:
$ ~ 012345678901234
Y si presiono la flecha hacia abajo, vuelvo al mensaje simple:
$ ~
EL PROBLEMA El problema comienza si tengo 16 o más caracteres para ejecutar:
$ ~ 0123456789012345
0123456789012345: command not found
Ahora, cuando presiono la flecha hacia arriba, se me presenta el comando anterior sin problemas:
$ ~ 0123456789012345
Presionar la flecha hacia abajo no me devuelve al mensaje simple, de alguna manera memoriza 10 caracteres del primer comando de más de 16 caracteres en mi historial y lo muestra hasta que se ejecuta cualquier otra cosa. Básicamente se convierte en mi mensaje predeterminado por el momento.
$ ~ 0123456789
Ahora puedo presionar Intro para deshacerme de él, o puedo ejecutar cualquier otro comando. Por ejemplo, esto:
$ ~ 0123456789ls
Desktop Documents Downloads Music Pictures Public Templates Videos
¿Que puedo hacer para arreglarlo? No es gran cosa pero sí bastante molesto.
Respuesta1
Necesita incluir códigos de color \[
y\]
PS1='\[\e[0;36m\]$ \w \[\e[m\]'
Además, PS1 solo es relevante para su shell interactivo, no necesita exportarlo a procesos secundarios.