
Eu configurei gnome-terminal
para .bashrc
ter cores personalizadas:
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\]$ '
E isso significa que ao executar algo assim:
A saída fica assim, embora a primeira linha devesse ser branca, e era branca até que eu fiz o comando digitado também em verde:
Então, como posso fazer com que a cor do texto de saída não seja afetada pelo fato de eu ter definido a cor do comando como verde? Estou executando o Ubuntu GNOME 15.04 com GNOME 3.16.
Atualização de informações:
Percebi que ao executar sudo rkhunter --nocolor --update
a saída fica toda verde.
Responder1
O problema é que você está configurando o comando para verde, mas não está fechando o código de escape da cor. Portanto, todas as linhas subsequentes, incluindo a saída de quaisquer comandos que não tenham formatação própria aplicada, são mostradas nessa cor. Como solução alternativa (fonte), você pode trap
imprimir o código de fechamento no sinal DEBUG. Adicione esta linha ao seu~/bashrc
trap 'printf "\e[0m" "$_"' DEBUG
Isso será impresso \e[0m
(o que fechará o código de cores aberto). Por ser trap
pedado ao DEBUG
sinal, ele será executado antes de qualquer comando executado. Então, entre acertar Entere o comando realmente rodar. Conforme explicado em man bash
:
Se um sigspec for DEBUG, o comando arg será executado antes de cada comando simples, para comando, comando case, comando select, toda aritmética para comando e antes da execução do primeiro comando em uma função shell (veja SHELL GRAMMAR acima).