Comando prompt do Bash sendo sobrescrito ao chamar o comando history / delete

0

O prompt do meu Bash se apaga ao excluir o texto depois ou ir longe demais no histórico.

Ao efetuar login, o prompt parece normal. Há colchetes brancos em torno de um nome de usuário colorido e, em seguida, um branco > como meu prompt, no entanto, se eu subir duas vezes no meu histórico, o comando history substituirá o prompt:

[stonewareslord] >        #Initial prompt. stonewareslord is green
                   | Cursor is above this pipe symbol

[stonewareslord] > ls     #Up arrow pressed once. ls was my last command. Colors are normal, ls is white
                     | Cursor is above this pipe symbol

pwdonewareslord] > ls     #Up arrow a second time. pwd overwrite [st. pwd is white and the other colors are normal. 
   | Cursor is above this pipe symbol

Também acontece quando eu apago o comando:

[stonewareslord] > ls     #Typed command after initial prompt. stonewareslord is green
                     | Cursor is above this pipe symbol

[stonewareslord] > l      #Deleted one character
                    | Cursor is above this pipe symbol

                          #Deleted second character (line is blank). Anything I type is white
| Cursor is above this pipe symbol

As linhas no bashrc que provavelmente poderiam ter afetado isso são:

color='\e[0;32m'  #Green
reset='\e[0m'     #Color is set back to normal (white)
prompt(){
    printf "[$color%s$reset]>" 'whoami'
}
PS1=""
PROMPT_COMMAND=prompt

export HISTFILESIZE=
export HISTSIZE=
export HISTTIMEFORMAT="%Y-%m-%d_%H:%M:%S "
export HISTFILE=~/.bash_eternal_history

readonly HOME
readonly HISTIGNORE
    
por stonewareslord 22.07.2014 / 05:48

1 resposta

0

Bem, eu descobri uma maneira de contornar isso:

PROMPT_COMMAND=prompt

foi alterado para:

PROMPT_COMMAND='PS1='prompt''

Editar: e as cores foram agrupadas em \[ \] (por exemplo, color='\[\e[0;32m\]' )

    
por 22.07.2014 / 20:27