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