Дайте пример $PS1 с кастомными цветами, не ломающий всякие переносы строки и прочее.
Пример, делающий так, что стирание перенесенной строки в маленьком окошечке работает как-то странно и стирает не то:
$ echo $PS1
\[`red_if_nonzero`\]\[`tput bold`\][\A \u \w]\$ \[`tput sgr0`\]
$ type red_if_nonzero
red_if_nonzero is a function
red_if_nonzero ()
{
RETVAL=$?;
[ $RETVAL -ne 0 ] && tput setaf 1;
return 0
}