shell PHP Shebang不工作[重复]

plicqrtu  于 2023-01-05  发布在  Shell
关注(0)|答案(3)|浏览(124)
    • 此问题在此处已有答案**:

shebang line not working(1个答案)
七年前就关门了。
注:此问题已解决,为shebang line not working的重复
这是我的

#!/usr/bin/env php
<?php
echo "starting";

该文件是可执行文件"-rwxr-xr-x"
我用完整路径调用该文件

/var/projects/user-backup.php

但我只收到错误消息":没有这样的文件或目录"
使用调用脚本

php /var/projects/user-backup.php

导致字符串"Starting ..."按预期显示。
即使我试着

/usr/bin/env php /var/projects/user-backup.php

一切正常,字符串"starting ..."按预期显示。
我哪里做错了?
编辑1:像这样使用shebang:

#!/usr/bin/php

结果显示错误消息"^M:错误的解释程序:没有这样的文件或目录",尽管肯定有一个/usr/bin/php(/usr/bin/php-〉/etc/alternatives/php,和/etc/alternatives/php-〉/usr/bin/php5)

nvbavucw

nvbavucw1#

我想我已经找到了(由于问题***@EDIT1***)。
关于[Wikipedia]: NewlineEOLNs)的几个词:

    • 赢注 :“\r\n*”(“**\D\A***", 转换键 * + * 左下角 *)
    • 否 *:
  • Linux:“***\n***”(“**\A***", 低频 *)
  • OSX:“***\r***”(“***\x0D***",CR

您的 .php 文件有 Win 风格的 EOLN(至少是 shebang 行上的),而一些 Nix 解释器不喜欢 CR,这里就是这种情况。
顺便说一句,Nano(或任何像样的编辑器,事实上)在编辑文件时计算出文件中的行尾,在添加新行时,它们的 EOLN 与现有的一致。
要使其正常工作,请将文件 EOLNs转换为 NixLinux)样式:

dos2unix /var/projects/user-backup.php

可能还需要读取[SO]: Flask CLI throws 'OSError: [Errno 8] Exec format error' when run through docker-compose (@CristiFati's answer)

xoefb8l8

xoefb8l82#

/usr/bin/php放入文件/etc/shells中。

irlmq6kh

irlmq6kh3#

这是行尾!!虽然我用“纳米”编辑文件在腻子窗口,我仍然得到了窗口行尾。
在使用“dos 2unix”转换所有行尾之后,事情就解决了!
比较此问题的答案:shebang line not working

相关问题