Você precisa de um \[
antes de cada \e
:
PS1="\n\[\e[0;97m\][\D{%d%m%y-%H%M}][\u@\h \W] \n\[\e[0m\]\$ "
Eu sei que há muitas perguntas relacionadas, mas não consegui encontrar outra maneira de obter ajuda sobre esse problema:
Na minha VM do CentOS, criei um script personalizado para o prompt do bash em /etc/profile.d/custom.sh
PS1="\n\e[0;97m\][\D{%d%m%y-%H%M}][\u@\h \W] \n\e[m\]\$ "
export PS1
Meu bash agora é assim:
Noentanto,seeudigitarumcomandolongoeseeuquisercolocarocursornaprimeiraposiçãousandoCTRL-A,éoqueacontece:
Digitadoalgumacoisalonga.Euqueromudaralgumacoisanoiníciodalinha,entãovoupressionarCTRL-Aparacolocarocursornaprimeiraposição:
Depois de pressionar CTRL-A:
Agora,seeutentarexcluiralinhainteiracomDELouBACKSPACE,esteéoresultadofinal?
Não importa o quanto eu tente excluir esses 4 caracteres, eles sempre ficam até eu pressionar a tecla ENTER. Esses últimos 4 caracteres são sempre exibidos, mas é como se eles não existissem .. Eu estou livre para digitar comandos e eles serão ignorados:
Na última foto, executei com sucesso o comando cd /var
e agora o bash é como pretendia.
Alguma opinião?