Quiero personalizar mi solicitud de bash utilizando códigos de escape ANSI y he notado que en algunos procedimientos los códigos están encerrados \[
y \]
en otros no.
Por ejemplo, estos funcionan igualmente bien para mí:
PS1='\e[0;32m foo '
PS1='\[\e[0;32m\] foo '
Me pregunto qué diferencia hace?
Respuestas:
La diferencia es que en los que no tienen
\[
y\]
, bash no podrá rastrear la longitud real del mensaje y varios problemas visuales se revelarán con el tiempo.fuente
Se explica muy bien en esta página :
fuente