Нужны ли \[ и \]?

Нужны ли \[ и \]?

Я вижу эту конфигурацию командной строки bash из интернета:

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

Как говорится в документе:

\[и \]используются для уведомления о том, что содержимое внутри непечатаемо (управляющие символы).

Если я уберу все \[и \]из подсказки выше, то PS1получится:

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

И это все еще работает! Итак, нужны \[и \]? и какие будут различия, если я удалю их все?

решение1

Вы пробовали искать в истории ( Ctrl+Pили )? Если строка длиннее, она может перезаписать подсказку, если не знает ее правильную длину.

Связанный контент