Editar para esclarecer: Eu já vi problemas como esse no passado devido ao escape incorreto de cores não impressas. No meu caso, foi devido a não ter \[
na frente de cada seqüência de escape, no seu caso, pode ser mais para não reconhecer '\ e', então eu recomendaria substituir \ e \ 033 certificando-se de que você sempre tem [\ 033 na frente de cada [x; yzm] para suas cores. Eu presumo \e[m\]
é para desativar cores, eu usaria "\[3[0m\]"
para isso (principalmente porque eu sei que funciona em todos os casos) Você pode considerar a configuração como uma variável da mesma maneira que eu tenho abaixo com PMT_Color_Off
para arrumar seu prompt e facilitar a depuração. Eu mostrei exemplos do que faço abaixo.
Estou a fugir das minhas cores, como PMT_Red="\[3[0;31m\]"
, em que, para não solicitar, é apenas Red="3[0;31m"
Para desativar a cor, uso PMT_Color_Off="\[3[0m\]"
e Color_Off="3[0m"
para não solicitar
uma cópia de trabalho do prompt em uma das minhas máquinas de desenvolvimento é
export PS1="\[3[01;33m\]$(ifconfig | grep "inet" | grep -v "127.0.0.1" | awk '{print $2}' | awk -F: '{print $2}') \[3[01;32m\]\u@\h \[3[01;34m\]\[3[01;33m\]\w #\[3[00m\] "
O link também usa o escape \ 033 em vez de \ e
Eu testei o meu em vários emuladores de terminal, incluindo xterm, gnome-terminal, terminologia e o buffer de quadros