Terminal Bash não quebra o texto corretamente

Terminal Bash não quebra o texto corretamente

Estou usando o gnome-terminalwith bash, e quando tenho um comando que deveria ultrapassar a linha, ele simplesmente permanece na mesma linha. Então, em vez de:

echo "abcdefghijklmnopqrstuvwxyz"

eu pegaria

opqrstuvwxyz""abcdefghijklmn

Ou algo semelhante a isso. No entanto, se eu pressionar Enter, o comando ainda funcionará. Acredito que tenha algo a ver com minha variável PS1, mas não sei o que há de errado com ela. Aqui está:

export PS1='\e[1;35m[\u:\w]\$\e[0;35m '

Responder1

Isso parece um pouco relacionado:

O agrupamento da tputsaída \[ \]é recomendado pela página de manual do Bash. Isso ajuda o Bash a ignorar caracteres não imprimíveis para calcular corretamente o tamanho do prompt.

Fonte.

"A tputsaída" no seu caso é assim: \e[1;35m, \e[0;35m(há dois fragmentos separados para agrupar). Eles poderiam ser escritos como \033[1;35me \033[0;35mtambém. Em geral, você precisa agrupar qualquer sequência não imprimível.

Eu modifiquei o seu PS1:

export PS1='\[\e[1;35m\][\u:\w]\$\[\e[0;35m\] '

e parece funcionar para mim sem o problema.

informação relacionada