У меня в bash происходит довольно странная вещь:
Открываю rxvt-unicode, делаю PS1='$ ', набираю что-нибудь -- все нормально.
Затем делаю PS1='\e[1m$\e[0m ' (знак доллара выделяется жирным), набираю -- происходит переход на новую строку до того, как курсор дойдет до конца (а именно strlen("\e[1m\e[0m") символами раньше).
Что глючит? bash, ncurses или readline? И как это исправить?