![Нужны ли \[ и \]?](https://rvso.com/image/1469924/%D0%9D%D1%83%D0%B6%D0%BD%D1%8B%20%D0%BB%D0%B8%20%5C%5B%20%D0%B8%20%5C%5D%3F.png)
Я вижу эту конфигурацию командной строки 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или ↑)? Если строка длиннее, она может перезаписать подсказку, если не знает ее правильную длину.