Bash Prompt Altera as cores em ls

2

Meu aviso é:

PS1="\'if [ $? = 0 ]; then echo \[\e[33m\]':)'\[\e[0m\]; else echo \[\e[31m\]':('\[\e[0m\]; fi\' \e[0;1m\w\e[1m\n$ "

O problema é quando eu uso ls, o prompt muda as cores para a cor da última linha produzida com ls. Por exemplo, se eu tiver um arquivo chamado z, o prompt mudará para cinza (para corresponder à cor dos arquivos de ls) depois de digitar ls, e esse comportamento está me enlouquecendo.

Alguém sabe como posso consertar isso? Eu quero o prompt inteiro definido para branco, com os smilies coloridos de forma diferente.

(Meu prompt mostra um :) ou um :( baseado no resultado do último comando, mostra o caminho do diretório do pwd, depois cai para uma nova linha para a entrada do comando)

Eu habilitei force_color_prompt sem sucesso.

    
por Dirgon 18.02.2013 / 05:54

1 resposta

1

Resolvido.

Novo prompt (com \ u @ \ h adicionado, já que esqueci isso) é

export PS1="\e[0;1m\u@\h]\'if [ $? = 0 ]; then echo \[\e[33m\]':)'\[\e[0m\]; else echo \[\e[31m\]':('\[\e[0m\]; fi\' \e[0;1m\w\e[1m\n$ "

adicionando o e[0;1m\ no início do prompt começou a colorização do prompt. Não posso acreditar que esqueci isso.

Essencialmente, o prompt alterou as cores porque o terminal mudou da cor anterior emitida por ls. Eu pensei que era o problema antes, mas não consegui descobrir a sintaxe necessária para colorir o primeiro bit.

    
por Dirgon 19.02.2013 / 08:37