我今天遇到了一些奇怪的 Bash 行为,也许这是一个已经修复的错误,但我还是要问一下。
我在工作计算机上安装了 x64 Cygwin,其中装有 Bash 4.3.46。今天偶然,!533
我没有键入运行历史上的旧命令,而是键入了~533
. 那应该什么都没有显示,因为我有一个空的目录堆栈。
但相反,~n
似乎冻结了 Bash,对于任何数字n
。打开一个带有 Bash 的全新 MinTTY,键入~1
并按 Enter,Bash 就会消失在 la-la 的土地上。Ctrl+C、Ctrl+J、Ctrl+Z、Ctrl+anything 无法让您返回提示。您键入的字符会回显到控制台,这有点有趣,因为某些东西必须仍在回显它们。但是您无法恢复 shell,甚至无法正常关闭 MinTTY — 您必须强制终止 Bash 进程 ID。
值得注意的是dirs +1
,它应该相当于~1
(根据Bash 手册),工作得很好。
我可以在我的工作计算机上可靠地重现它。有趣的是,我家用电脑上的 Cygwin Bash 4.4.12 工作正常,所以这可能是他们在 4.4.x 中修复的 4.3.x 版本中的错误。如果是bug,我肯定会升级。
那么这种破碎的波浪号行为是一个错误吗?配置错误?有没有人遇到过这种行为?