为什么当我使用 ls、cd 或发出其他命令时,bash 提示符会重复其最后一行两次?

为什么当我使用 ls、cd 或发出其他命令时,bash 提示符会重复其最后一行两次?

我的提示是这样的:

PS1="\[\033[32m\]\u@myserver\n\[\033[33m\w$\033[0m\] "

因此作为我之后的输出ls我看到这个:

jake@myserver
~/public_html$
~/public_html$

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

jake@myserver
~/public_html$

颜色命令工作得很好,但是这个重复行让我抓狂。我从 Windows 版 MySysGit 附带的命令提示符改编了这个命令提示符。

为什么会发生这种情况?

如果我只是打进入在提示符下,它会正确打印,没有重复的第二行。重复只发生在ls光盘或者可能是其他一些 bash 命令。

答案1

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

PS1="\[\033[32m\]\u@myserver\n\[\033[33m\]\w$\[\033[0m\] "

您可能还会看到它PROMPT_COMMAND有一个值。它可能会产生一些输出。这将告诉您它被设置为什么:

echo $PROMPT_COMMAND

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

PROMPT_COMMAND=

等号后面什么也没有。

相关内容