无法在没有前缀“php”的情况下执行 PHP 命令行脚本,尽管添加了 shebang 并将符号链接可执行文件的路径添加到


Can't get PHP Command Line Script to execute without prepending 'php' despite shebang added and path to symlinked executable added to PATH

我正在尝试创建类似于laravel安装程序的东西,它是一个利用Symfony控制台组件的PHP脚本。一切都很好,除了我似乎无法在我的命令行上全局执行该死的东西。

我目前已将脚本(锅炉)存储为/dir/dir/vendor/author/packagename/boiler。

通过作曲家,我还有一个符号链接,指向来自/dir/dir/vendor/bin/的脚本。通过 composer.json 中的 bin 自动完成。

我已经更新了我的$PATH,现在显示/文件夹/文件夹/供应商/bin/指向符号链接;

我的脚本开始:

#!/usr/bin/env php

权限为:

-rwxr-xr-x

我在Mac OSX上运行Zshell。


如果我进入目录并键入php boiler但它boiler返回未找到命令,并且如果我在不同的目录中,boiler也返回未找到命令,它将运行。 php boiler返回"无法打开输入文件:锅炉"

laravel

安装程序完全按照我想要的方式运行,在命令行上的任何地方只使用laravel。

完全不知所措。谷歌没有出现任何类似的问题,Stack也没有(不过我的搜索能力可能很欠缺,现在是凌晨4点。

对于那些有类似问题的人:

  • 使用which commandName查看它是否已正确添加到您的$PATH
  • 检查符号链接是否正确(如果它通过一个)
  • 检查符号链接和可执行脚本的权限
  • 发布到堆栈溢出,以便它只是..修复自己。

所以。。。 which boiler返回了正确的路径,所以我再次尝试从我的家目录boiler,它起作用了。

我真的没有改变任何事情,被困了一个小时。我不明白。。。

谢谢大家的帮助。