¿Cómo borrar el formato de PS1 en gnome-terminal?

¿Cómo borrar el formato de PS1 en gnome-terminal?

gnome-terminalLo he configurado .bashrcpara tener colores personalizados:

PS1='${debian_chroot:+($debian_chroot)}\[\033[00;37m\][\[\033[00;32m\]\t\[\033[00;37m\]] \[\033[01;34m\]\u\[\033[00;37m\]@\[\033[01;34m\]\h\[\033[00;37m\]:\[\033[01;34m\]\w\[\033[01;32m\]$ '

Y esto significa que al ejecutar algo como esto:

ingrese la descripción de la imagen aquí

El resultado se ve así aunque la primera línea debería ser blanca, y era blanca hasta que hice el comando que está escrito también en verde:

ingrese la descripción de la imagen aquí

Entonces, ¿cómo puedo hacer que el color del texto de salida no se vea afectado por el hecho de haber configurado el color del comando en verde? Estoy ejecutando Ubuntu GNOME 15.04 con GNOME 3.16.

Actualización de información:

He notado que cuando se ejecuta, sudo rkhunter --nocolor --updatela salida es toda verde.

Respuesta1

El problema es que está configurando el comando para que esté en verde pero no cierra el código de escape de color. Por lo tanto, todas las líneas posteriores, incluida la salida de cualquier comando al que no se le haya aplicado su propio formato, se muestran en ese color. Como solución alternativa (fuente), podría trapimprimir el código de cierre de la señal DEBUG. Añade esta línea a tu~/bashrc

trap 'printf "\e[0m" "$_"' DEBUG

Eso se imprimirá \e[0m(lo que cerrará el código de color abierto). Debido a que está trapvinculado a la DEBUGseñal, se ejecutará antes que cualquier comando que ejecute. Entonces, entre presionar Entery ejecutar el comando. Como se explica en man bash:

Si una sigspec es DEBUG, el comando arg se ejecuta antes de cada comando simple, para comando, comando de caso, comando de selección, cada aritmética para comando y antes de que se ejecute el primer comando en una función de shell (consulte GRAMÁTICA DE SHELL más arriba).

información relacionada