需要 \[ 和 \] 吗?

需要 \[ 和 \] 吗?

我从互联网上看到这个 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)?一旦行变长,如果不知道其正确长度,它就会覆盖提示。

相关内容