
gnome-terminal
Lo he configurado .bashrc
para 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:
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:
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 --update
la 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 trap
imprimir 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á trap
vinculado a la DEBUG
señ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).