Encierre sus colores entre corchetes []
para que cuenten como caracteres no imprimibles .
export PS1="\[3[0;35m\]\u\[3[00m\] on \[3[0;36m\]\h\[3[00m\] in \[3[0;33m\]\w\[3[00m\] \$ "
Desafortunadamente, esto da como resultado problemas conocidos de ajuste de línea que están plagados de bash.
Hay buenas noticias para todos, la luz al final del túnel es tput
.
echo $(tput setaf 6) This is cyan
Establezca todas sus variables primero, luego úselas dentro del script.
mg=$(tput setaf 5);cy=$(tput setaf 6);yl=$(tput setaf 3);rs=$(tput sgr0); echo $mg $USER $cy $HOSTNAME $yl $PWD $rs
Puede encontrar un script de ejemplo en mi github dotfiles
repo