答案1
- 无需导出 PS1:它是 shell 的变量,其他进程不会使用它。
看起来你的转义括号不太正确。他们在那里包围非印刷序列,因此 bash 可以准确地计算出提示符的宽度。尝试这个:
PS1="\[\e[0;31m\]\$ \[\e[0;32m\]\w\[\e[0m\] : " # 1.........1 2.........2 3......3
所以打印位(
\$
、\w
、冒号和空格)是外部括号。
进一步参考:https://www.gnu.org/software/bash/manual/bashref.html#Controlling-the-Prompt