我刚刚在 bash 4.3 上注意到了这一点;确切的版本号是 4.3.42(1)-release (x86-redhat-linux-gnu)。
$ ..
$ ...
$ ....
$ .....
为什么不提示“命令未找到”?
$ ...
$ echo $?
$ 127
我查了一下,$PATH
什么也alias
没有;那个男人也没有帮忙。
bash运行在Fedora Linux上,但我认为它与操作系统无关。
编辑
我刚刚注意到这对于任何点启动命令都是一样的
.za
.zaza
..za
..zaza
答案1
这是由 Fedora 中的命令未找到处理引起的。
运行未知命令(包括...
等,如果没有别名匹配)会导致command_not_found_handle
以缺少的命令作为参数运行(请参阅/etc/profile.d/PackageKit.sh
其定义)。在给定的场景中,处理程序然后/usr/libexec/pk-command-not-found
再次使用缺少的命令作为参数运行 。以前,pk-command-not-found
简单来说忽略任何以.
:
if (argv[1][0] == '.')
goto out;
并以代码 127 退出。
这种行为是介绍修理红帽#1151185,也被引用于对于以点开头的不存在命令,Bash 不会打印任何错误消息,并且有一个错误请求修复(红帽#1292531)。自 PackageKit 1.1.8 起(请参阅这次提交):现在仅处理带前导点的命令,.
并..
忽略它们。