当命令变得太长时,命令行会覆盖自己

Jan*_*nak 34 linux debian putty

我正在使用PuTTY登录Debian服务器.我有一个奇怪的问题,当我输入的命令太长时,它没有环绕并开始一个新行.相反,它从同一行的开头开始,并开始覆盖提示,然后是命令的开头.

该命令运行得很好,但它真的很烦人,我假设有一些设置可以解决这个问题吗?

tri*_*web 70

我自己刚刚解决了这个问题.

这只是PS1命令提示符中的一些颜色转义:

LTGREEN="\033[40;1;32m"
LTBLUE="\033[40;1;34m"
CLEAR="\033[0m"
LIGHT_GRAY="\033[40;1;33m"
export PS1="$LTGREEN\u$LTBLUE@\h:$LIGHT_GRAY\w$CLEAR ? "
Run Code Online (Sandbox Code Playgroud)

问题是颜色文字没有括在括号中.在它们周围放置转义括号可以完全解决问题:

LTGREEN="\[\033[40;1;32m\]"
LTBLUE="\[\033[40;1;34m\]"
CLEAR="\[\033[0m\]"
LIGHT_GRAY="\[\033[40;1;33m\]"
export PS1="$LTGREEN\u$LTBLUE@\h:$LIGHT_GRAY\w$CLEAR ? "
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.

  • 这也为我解决了!你先生得到了一个赞成. (3认同)
  • 同样的解决方案也解决了我的问题.谢谢 (2认同)
  • 我现在打了几天这个.你做了我的一天,你已经upvote! (2认同)
  • 不要忘记为 PS1 变量使用双引号 (2认同)
  • 你是怎么想出来的,为什么需要这样做?它是否需要围绕每个颜色文字(如您所做的那样)还是可以一次包装多个颜色文字? (2认同)

R S*_*hko 14

当你在另一个命令运行时调整Putty窗口的大小时我看到了这种行为,因为bash没有得到信号告诉它窗口已经调整大小.

如果这是添加的问题:

shopt -s checkwinsize
Run Code Online (Sandbox Code Playgroud)

应该让它消失.


小智 10

尝试:

eval $(resize)
Run Code Online (Sandbox Code Playgroud)

ََََََََََ


Ori*_*rds 7

尝试按Ctrl+ L.(或者也许Alt+ L- something+ L无论如何.)如果我没记错的话,重新运行代码来计算你的终端尺寸并相应地进行调整.