如果我按 Ctrl+C,psql 会破坏我的 shell
psql ruins my shell if I press Ctrl+C
这有点奇怪。如果我启动 psql
,然后在提示输入密码时按 Ctrl+C,程序似乎退出了,但我可以即使我回到 shell,也看不到我输入的内容。就好像我输入的所有内容都被隐藏了,因为它仍然认为我正在输入密码。
我找到的唯一解决方案是启动一个新的 shell,这很好,但不是很好。我很想了解这里发生了什么以及如何解决它。
reset
常有效,但不是万能的。对于这种情况,只有终端回显被禁用。其他程序可能会修改回车 return 的处理方式,使得键入 "reset" 变得很尴尬(您可以这样做,但必须键入 controlJ 结束该行)。
在其他情况下,因为 reset
依赖于 终端描述 ,它可能不会重置 一切 。特别麻烦的是 (a) 替代字符集和 (b) 终端调色板的更改。
- 虽然
ncurses
有许多终端描述 do 重置备用字符集,但在 Unix 系统上 not[= 是一个常见问题35=] 这样做。
- 在过去的几年里,人们一直在使用 xterm 256color 序列来设置调色板,但是
reset
无法将它们恢复为默认调色板。
除了终端描述部分,reset
执行类似于 stty sane
的功能。
这有点奇怪。如果我启动 psql
,然后在提示输入密码时按 Ctrl+C,程序似乎退出了,但我可以即使我回到 shell,也看不到我输入的内容。就好像我输入的所有内容都被隐藏了,因为它仍然认为我正在输入密码。
我找到的唯一解决方案是启动一个新的 shell,这很好,但不是很好。我很想了解这里发生了什么以及如何解决它。
reset
常有效,但不是万能的。对于这种情况,只有终端回显被禁用。其他程序可能会修改回车 return 的处理方式,使得键入 "reset" 变得很尴尬(您可以这样做,但必须键入 controlJ 结束该行)。
在其他情况下,因为 reset
依赖于 终端描述 ,它可能不会重置 一切 。特别麻烦的是 (a) 替代字符集和 (b) 终端调色板的更改。
- 虽然
ncurses
有许多终端描述 do 重置备用字符集,但在 Unix 系统上 not[= 是一个常见问题35=] 这样做。 - 在过去的几年里,人们一直在使用 xterm 256color 序列来设置调色板,但是
reset
无法将它们恢复为默认调色板。
除了终端描述部分,reset
执行类似于 stty sane
的功能。