O terminal do Bash não quebra o texto corretamente

1

Estou usando o gnome-terminal com o bash e, quando tenho um comando que deve passar da linha, ele permanece na mesma linha. Então, ao invés de:

echo "abcdefghijklmnopqrstuvwxyz"

gostaria de receber

opqrstuvwxyz""abcdefghijklmn

Ou algo semelhante a isso. No entanto, se eu pressionar Enter, o comando continuará funcionando. 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 '
    
por Amorris 22.06.2017 / 04:56

1 resposta

4

Isso parece um pouco relacionado:

Wrapping the tput output in \[ \] is recommended by the Bash man page. This helps Bash ignore non-printable characters so that it correctly calculates the size of the prompt.

Fonte .

"A tput output" no seu caso é assim: \e[1;35m ou \e[0;35m (há dois fragmentos separados para embrulhar).

Eu modifiquei seu PS1 :

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

e parece funcionar para mim sem o problema.

    
por 22.06.2017 / 05:53