PS1问题,cmd正在循环播放


1

我已设置PS1为以下值:

PS1="\033[0;37m[\033[1;33m\w\033[0;37m]\n\t \[[34m\]\u\033[0;37m@\[[34m\]\[[1m\]\h\[(B[m\] $"

问题是任何超过一行的命令都会循环并且不会生成新行。所以我覆盖了我已输入的行。有什么问题PS1


这甚至不是一个有效的命令,bash等待更多的输入

Answers:


6

提示中的非打印字符需要被包围\[\]以便bash可以正确跟踪提示的长度并容纳超出终端边缘的行。


所以我应该在行前后添加哪些部分?
Runar

您可以根据需要在不打印的部件之前和之后添加它。
Ignacio Vazquez-Abrams

但该行会打印,但是当我输入一个长命令时它会循环播放。
Runar

性状。再试一次。
Ignacio Vazquez-Abrams

非常感谢!它现在工作:)PS1="\033[0;37m[\033[1;33m\[\w\]\033[0;37m]\[\n\]\[\t\] \[${tRandColor}\]\[\u\]\033[0;37m@\[${tRandColor}\]\[${tBold}\]\[\h\]\[${tReset}\] \$
Runar
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.