bash 提示符换行到行首

bash 提示符换行到行首

我试图在我的 ~/.bashrc 文件中为 Debian 10 上的 PS1 提示符添加一些颜色和时间。它最初看起来是正确的,但如果我键入超过大约 40 个字符的行,光标将移动到该行的开头(提示本身的第一个字符)并从那里继续键入。我认为有些东西没有正确转义,但我看不到它是什么。

SH_OFF='\[\033[00m\]'

SH_BLACK='\[\033[1;30m\]'
SH_BLUE='\[\033[1;34m\]'
SH_GREEN='\[\033[1;32m\]'
SH_CYAN='\[\033[1;36m\]'
SH_RED='\[\033[1;31m\]'
SH_PURPLE='\[\033[1;35m\]'
SH_BROWN='\[\033[1;33m\]'
SH_YELLOW='\[\033[1;33m\]'

PS1="${debian_chroot:+($debian_chroot)}$SH_GREEN\u@\h \t$SH_OFF $SH_YELLOW\w$SH_OFF \$ "

答案1

好吧,看起来我必须使用双引号。这似乎已经修复了它:

SH_OFF="\[\033[00m\]"

SH_BLACK="\[\033[1;30m\]"
SH_BLUE="\[\033[1;34m\]"
SH_GREEN="\[\033[1;32m\]"
SH_CYAN="\[\033[1;36m\]"
SH_RED="\[\033[1;31m\]"
SH_PURPLE="\[\033[1;35m\]"
SH_BROWN="\[\033[1;33m\]"
SH_YELLOW="\[\033[1;33m\]"

相关内容