我正在使用脚本更改 hello 字符串/etc/profile.d/
if [ "$PS1" ]; then
PS1='\u\[\e[0m\]@\h\[[\e[1;31m\]PROD\[\e[0;37m\]]\W\\$ '
fi
但是在按up执行上一条命令的时候出现了一个问题,$后面的空格消失了,好像是小菜一碟,但是眼睛一抽,怎么赢?
ps
OS: CentOS Linux release 8.2.2004 (Core)
Kernel: 4.18.0-147.8.1.el8_1.x86_64
Shell: GNU bash, version 4.4.19(1)-release (x86_64-redhat-linux-gnu)

\[通过使用括号和对一些字符序列(通常这些是用于设置颜色的特殊代码)进行分组\],您可以告诉gnu/readline库该字符序列在“绘图”时不会占用任何字符空间。这使您可以正确计算问候语的长度,并在滚动浏览历史记录时,在相同位置显示下一条命令。你的错误在这里:
在组内,您不仅放置了(不占用单一熟悉度)
\e[1;31m用于将文本颜色设置为红色 (31) 和“粗体”书写 (1) 的序列,而且还放置了应“按原样”显示的符号[,即占有熟悉感。只需将此角色从组中删除即可。从你的想法来看——在她面前: