lxterminal solicita caracteres indesejados

lxterminal solicita caracteres indesejados

Estou na nova instalação do Lubuntu 14.04. Estou usando o LXTerminal e este é o prompt que estou configurando através do arquivo .bashrc:

export PS1="\e[0;36m$ \w \e[m"

Suponha que eu insira um comando com até 15 caracteres (e execute para que ele seja registrado no histórico) (não importa "comando não encontrado"):

$ ~ 012345678901234
012345678901234: command not found

Agora, se eu pressionar a seta para cima, recebo meu comando de volta:

$ ~ 012345678901234

E se eu pressionar a seta para baixo, voltarei ao prompt simples:

$ ~ 

O PROBLEMA O problema começa se eu tiver 16 ou mais caracteres para executar:

$ ~ 0123456789012345
0123456789012345: command not found

Agora, quando pressiono a seta para cima, recebo o comando anterior perfeitamente:

$ ~ 0123456789012345

Pressionar a seta para baixo não me leva de volta ao prompt, de alguma forma memoriza 10 caracteres do primeiro comando com mais de 16 caracteres em meu histórico e o exibe até que qualquer outra coisa seja executada. Basicamente, torna-se meu prompt padrão por enquanto.

$ ~ 0123456789

Agora posso pressionar Enter para me livrar dele ou posso executar qualquer outro comando. A título de exemplo isto:

$ ~ 0123456789ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos

O que posso fazer para consertar isso? Não é grande coisa, mas é bastante chato.

Responder1

Você precisa agrupar códigos de cores \[e\]

PS1='\[\e[0;36m\]$ \w \[\e[m\]'

Além disso, o PS1 é relevante apenas para o seu shell interativo, você não precisa exportá-lo para processos filhos.

informação relacionada