bash 4.3“多点”命令在 Fedora 上无提示地失败

bash 4.3“多点”命令在 Fedora 上无提示地失败

我刚刚在 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 起(请参阅这次提交):现在仅处理带前导点的命令,...忽略它们。

相关内容