是什么原因导致该文件无法由 Linux 的 Windows 子系统上的用户执行?

是什么原因导致该文件无法由 Linux 的 Windows 子系统上的用户执行?

这似乎是几天前随机开始的。以前从 Windows 版 Ubuntu bash 运行 fish shell 没问题。但突然当我点击Tab自动完成时,它弹出:

The file "x86" is not executable by this user in command substitution called on standard input

另外,当我输入时x86它实际上并没有运行命令,但它告诉我:

The file "x86" is not executable by this user

但是,which x86没有输出任何内容。

知道这里到底发生什么事吗?

答案1

这是鱼中存在的一种虫子并在 2.3.0 版本中修复- 如果它在后续版本中仍然存在,我们将非常感谢您的报告。

您可以从Ubuntu PPA 存储库如果安装的版本apt-get太旧。

答案2

这里的问题在于 completer_t::complete_cmd,它调用 expand_string。这是一个非常通用的函数,可以扩展通配符、进程扩展、变量扩展等内容。

在 $PATH 的组件中进行这些扩展肯定是错误的。

相关内容