![解释几乎同时出现的 Enter 和反斜杠键](https://linux22.com/image/122016/%E8%A7%A3%E9%87%8A%E5%87%A0%E4%B9%8E%E5%90%8C%E6%97%B6%E5%87%BA%E7%8E%B0%E7%9A%84%20Enter%20%E5%92%8C%E5%8F%8D%E6%96%9C%E6%9D%A0%E9%94%AE.png)
答案1
相反,反斜杠位于绿色提示的左侧。
因为你输入的反斜杠打印出来了前输出了提示。然后输出提示符,并且将你输入的反斜杠添加到其中。
为什么我平时的提示颜色是绿色,但提示颜色却变成了白色?
因为您的$PS1
是绿色的,但是您的$PS2
,即等待行完成时显示的内容,却不是。一旦该行完成(因为行末尾的反斜杠继续该行),提示符将返回到$PS1
。
答案2
我的测试表明,如果我Enter
几乎同时按下 和 反斜杠键,则可以重现这种情况。假设键盘完好“去抖”(链接到有关去抖的信息)然后只输入了一个反斜杠,因此实际上存在“虚假的第二个回声”。
可以通过退格键“删除” (单个) 反斜杠键,但两个回声中只有一个会消失。按下退格键时,绿色提示符右侧的回声会消失。绿色提示符左侧的回声无法删除。显然我没有“删除”它,而是继续Enter
再次使用该键。该backslash Enter
对是一个行延续序列,可在脚本内部使用,但显然也可以交互使用。正如@IgnacioVazquez-Abrams 所述,提示符将成为分配给续行的提示符,而在我的情况下,它的外观恰好与我通常的绿色提示符不同。
在我的测试中,如果使用退格键“删除”反斜杠(即使仅删除两个回显之一),则不会继续行。这是通过使用退格键“删除”反斜杠然后按下按键来演示的Enter
。在我的测试中,提示符保持绿色,这意味着没有形成行连续序列。
该mv
命令不受反斜杠的影响,因为该Enter
键是在反斜杠之前稍微按下的。证明这一点的是反斜杠出现在新行上(尽管在绿色提示之前),这意味着Enter
,它作为换行符回显,显然是首先被按下的。由于该mv
命令不受反斜杠的影响,因此不会创建意外的文件。
我相信我在使用时也看到过类似的行为ssh
,而且我打字速度很快。远程主机无法尽快提示输入密码,因此我的部分密码会回显到密码提示的左侧,也可能会回显到密码提示的右侧。我不记得密码是在两个地方都被混淆了还是只在提示的右侧被混淆了。