bash 提示符控制覆盖前面的行

bash 提示符控制覆盖前面的行

我有一个问题,当我执行“systemctl status”等命令时,输出会写入到 bash 输出的前几行。通常输出写在当前行上方约 20 行... PS1 似乎不是问题,因为我使用 PS1=$ 来保持简单。还尝试了以下提到的解决方案:

Bash 覆盖第一行,PS1 bash 提示符

我正在使用 putty 连接到嵌入式目标上的 ubuntu。例如,如果我在文件上执行“cat”,我没有看到这个问题。

答案1

这个问题太模糊了,但我会检查一下:

  • 检查终端 ( TERM) 以及终端的设置。它们应该匹配,但最好使用一些标准的(并且系统应该安装对此类终端的支持)。

  • 检查字体。同样在这种情况下,请尝试使用通用字体。

答案2

如果使用旧的 xterm和终端功能systemctl status初始化终端(就像它显示全屏应用程序一样),您将看到此行为。您可以使用 infocmp 查看那些,例如,smcuprmcup

smcup=\E[?47h, rmcup=\E[2J\E[?47l,

这些在切换到/从备用屏幕之前/之后保存/恢复光标位置。如果您在 putty 中禁用了备用屏幕功能,保存/恢复光标转义序列仍然有效。

当备用屏幕被禁用时,正确实现的新型 smcup/rmcup 会禁用光标保存/恢复(我不记得这是否在 Putty 中正确实现了......)。

进一步阅读:

相关内容