A sugestão do @ i_am_root de colocar \[
e \]
dentro da definição de red
e similares é boa. No entanto, por this , o bash processa apenas \[
e \]
em PS1
, não no texto incluído em PS1
por $()
. Portanto, use
e
1\x01
2\x02
(ou red
e \[
) dentro de \]
e similares em vez de
e %code% .
1
2%code%2
1
Observação: por esta resposta , somente os códigos de escape devem estar em %code% e %code% . O texto que ficará visível para o usuário deve estar fora do %code% e %code% , de modo que o bash saiba que ocupa espaço na tela e pode ser responsável por isso ao redesenhar.