bash 开始替换当前行的字符,而不是移至下一行

bash 开始替换当前行的字符,而不是移至下一行

我使用 bash shell

$ bash --version
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
$

有时,当在提示符下键入一个相当长且不适合当前行的命令时,bash 不会在下一行显示多余的字符,而是从当前行重新开始..替换那里的字符并造成混乱。

什么应该發生:

|---------------------------------------------|
| $ my big long command takes a lot of argumen|
| s and does not fit in a single line         |
|                                             |
|---------------------------------------------|

实际情况是:

|---------------------------------------------|
| s and does not fit in a single linef argumen|
|                                             |
|                                             |
|---------------------------------------------|
  • 该问题时有发生
  • 如果我将 shell 窗口调整到非常小的宽度,则恢复正常行为

有人知道这里发生了什么事吗?


$ echo $TERM
xterm
$ echo $PS1
\[\e[30m\][\t]\[\e[0m\]\[\e]0;\w\a\]\[\e[30m\][\W]$
$

答案1

您的 shell 对终端的宽度感到困惑。每当发生这种情况时,都eval `resize`应该正确重置所有内容。

相关内容