在 Unix bash 上,当我运行stty intr ^M
(^M 是 Control-M)时,我实际上阻止了自己运行任何命令。每当我按下“返回”键时,我都会向 shell 发送中断信号,并且我的命令永远不会运行。假设我的 .profile 中有这个(我实际上没有……);我如何才能在将 ^M 设置为触发中断信号的 bash 会话中摆脱这个困境?
克里斯
答案1
bash 将 ^M 和 ^J 绑定到accept-line
默认情况下,因此您可以使用任一方法。
答案2
一般来说(如果事情比这更糟糕,而你不知道如何修复它们),你可以stty
使用另一个 tty运行
stty sane < /dev/whatever
stty intr ^c < /dev/whatever
如果您不确定哪个 tty 的设置混乱,请使用who
或ps
找出您正在使用的 tty,然后依次检查stty < /dev/whatever
每个 tty,直到找到错误的 tty。
答案3
我本来要建议stty sane ^J
,但这不会重置中断。您必须执行以下操作:
$ stty intr ^C^J
代表^C
Control-C。通常,您可以按 Control-V/Control-C 来获取该键。