当我 ls、cd 或发出杂项命令时,为什么我的 bash 提示符将最后一行重复两次?

Jak*_*ake 4 bash prompt ps1

我的提示是这样的:

PS1="\[\033[32m\]\u@myserver\n\[\033[33m\w$\033[0m\] "
Run Code Online (Sandbox Code Playgroud)

因此,作为我ls后的输出,我看到了以下内容:

jake@myserver
~/public_html$
~/public_html$
Run Code Online (Sandbox Code Playgroud)

当我只应该(我认为)看到:

jake@myserver
~/public_html$
Run Code Online (Sandbox Code Playgroud)

颜色命令工作得很好(很漂亮),但是这个重复的线条让我发疯。我根据 Windows 版 MySysGit 附带的命令提示符改编了此命令提示符。

为什么会发生这种情况?

如果我只是在提示符下按回车键,它就会正确打印,而不会出现重复的第二行。复制仅发生在lscd或其他一些 bash 命令之后。

Den*_*son 5

我没有看到加倍,但你缺少两个转义括号:

PS1="\[\033[32m\]\u@myserver\n\[\033[33m\]\w$\[\033[0m\] "
Run Code Online (Sandbox Code Playgroud)

您可能还会看到是否PROMPT_COMMAND有值。它可能会产生一些输出。这将告诉您它的设置:

echo $PROMPT_COMMAND
Run Code Online (Sandbox Code Playgroud)

如果不知道它包含什么,我无法告诉您如果它是问题的一部分该怎么办。但是,您可以像这样清除它:

PROMPT_COMMAND=
Run Code Online (Sandbox Code Playgroud)

等号后面什么都没有。