J'ai configuré gnome-terminal
dans .bashrc
pour avoir des couleurs personnalisées:
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\]$ '
Et cela signifie que lors de l'exécution de quelque chose comme ceci:
La sortie ressemble à ceci même si la première ligne doit être blanche et elle était blanche jusqu'à ce que la commande saisie soit également verte:
Alors, comment puis-je éviter que la couleur du texte de sortie ne soit affectée par le fait que j'ai défini la couleur de commande sur vert? J'utilise Ubuntu GNOME 15.04 avec GNOME 3.16.
Mise à jour des informations:
J'ai remarqué que lors de l'exécution de Sudo rkhunter --nocolor --update
, la sortie est entièrement verte.
Le problème est que vous configurez la commande pour qu'elle soit en vert mais ne fermez pas le code d'échappement de couleur. Par conséquent, toutes les lignes suivantes, y compris le résultat de toutes les commandes auxquelles aucun formatage n'a été appliqué, sont affichées dans cette couleur. Pour contourner le problème ( source ), vous pourriez trap
imprimer le code de fermeture du signal DEBUG. Ajouter cette ligne à votre ~/bashrc
trap 'printf "\e[0m" "$_"' DEBUG
Cela imprimera \e[0m
(ce qui fermera le code de couleur ouvert). Comme il s'agit de trap
ped au signal DEBUG
, il sera exécuté avant toute commande exécutée. Donc, entre frapper Enter et la commande en cours d'exécution. Comme expliqué dans man bash
:
Si un sigspec est DEBUG, la commande arg est exécutée avant chaque commande simple, commande pour, commande cas, commande, sélection, chaque arithmétique pour commande et avant l'exécution de la première commande dans une fonction Shell (voir Shell GRAMMAR ci-dessus).