调试时无法看到我在 bash 中输入的内容

调试时无法看到我在 bash 中输入的内容

我一直无法看到我在 bash 中输入的内容。提示符出现,我仍然可以运行命令,但我正在盲目地输入它们。

这发生在多个操作系统上(KDE/konsole、ubuntu 14.04 和 fedora 26)。它通常发生在之后Ctrl+C,但非常间歇。它一定与我使用的一个或多个脚本有关,我想知道如何调试正在发生的事情。stty sane修复了终端,但这种情况每天都会发生很多次。我试过清空我的PS1PROMPT_COMMAND变量,但似乎不是它们。

  1. 究竟发生了什么事情,让文本变得不可见呢?
  2. 我怎样才能缩小原因范围?

答案1

首先,你可以用以下方法修复这个问题

stty echo

(而且当然,man stty)。

您的一个脚本有缺陷,它关闭了字符回显,但无法将其打开(在 中bash,通过trapbuitin)。

在早期(1967 年),计算机访问是通过远程终端(如 TeleType ASR-35 和 KSR-33)进行的,速度为 110 波特。

有两种方式可以将字符发送到另一端的计算机:半双工,其中字符在本地回显,并且可能发送到计算机;全双工,其中字符不在本地回显,而是发送到计算机,计算机将每个字符回显回终端,以进行验证。

让计算机(1970 年运行 Unix)知道 TeleType 的配置方式是通过stty -echo和完成的stty echo(请参阅man stty)。

stty echo包含在内stty sanestty sane绝不会伤害。

Unix“tty”概念至今仍在您的终端中使用。

相关内容