São \[ e \] necessários?

São \[ e \] necessários?

Eu vejo esta configuração do prompt do bash na Internet:

PS1="\[\e[0m\]\[\e[0;92m\]\u\[\e[91m\]@\[\e[93m\]\h\[\e[0m\]:\[\e[0;94m\]\w\[\033[1;30m\]\[\e[0m\]$ "

Como diz o documento:

\[e \]são usados ​​para perceber que o conteúdo interno não pode ser impresso (caracteres de controle).

Quando eu removo todos os \[e \]do prompt acima, PS1torna-se:

PS1="\e[0m\e[0;92m\u\e[91m@\e[93m\h\e[0m:\e[0;94m\w\033[1;30m\e[0m$ "

E ainda funciona! Então, faça o \[e \]necessário? e quais são as diferenças se eu remover todos eles?

Responder1

Você já tentou pesquisar seu histórico ( Ctrl+Pou )? Quando a linha for mais longa, ela poderá sobrescrever o prompt se não souber seu comprimento correto.

informação relacionada