No começo eu pensei que as barras invertidas escapariam entre aspas duplas e esse era o problema, mas, pensando bem, "\["
é equivalente a '\['
, então esse não é o caso - seria tem trabalhado dessa maneira.
Mas o verdadeiro problema era que readline
não sabia quantos caracteres haviam sido desenhados na tela e quantos eram interceptados como escapes terminais. De fato, é provável que o prompt no tenha sido impresso porque seu prompt consistia no que era essencialmente uma string de aspas abertas.
Então, como observei no comentário, você precisava fechar a sequência. O \[
significa começar a seqüência de escape não imprimível no prompt - é tão readline
pode acompanhar quantos caracteres são desenhados na tela. Você também precisa terminar como:
PS1='\[non-printing terminal escapes here\]'
man bash 2>/dev/null | grep '^ *\\[' -A5
\[ begin a sequence of non-printing
characters, which could be used to
embed a terminal control sequence
into the prompt
\] end a sequence of non-printing char‐
acters