PHP Shebang不工作

PHP Shebang不工作,php,shell,shebang,Php,Shell,Shebang,注:此问题已解决。这是一个复制品 这就是我所拥有的: #!/usr/bin/env php <?php echo "starting"; 但我只收到错误消息:“没有这样的文件或目录” 使用 php /var/projects/user-backup.php 结果字符串“开始…”按预期显示 即使我试着 /usr/bin/env php /var/projects/user-backup.php 一切正常,字符串“starting…”按预期显示 我哪里做错了 编辑1: 像这样使用sh

注:此问题已解决。这是一个复制品


这就是我所拥有的:

#!/usr/bin/env php
<?php
echo "starting";
但我只收到错误消息:“没有这样的文件或目录”

使用

php /var/projects/user-backup.php
结果字符串“开始…”按预期显示

即使我试着

 /usr/bin/env php /var/projects/user-backup.php
一切正常,字符串“starting…”按预期显示

我哪里做错了

编辑1: 像这样使用shebang:

#!/usr/bin/php
导致错误消息“^M:错误的解释器:没有这样的文件或目录”
虽然肯定有一个/usr/bin/php(/usr/bin/php->/etc/alternations/php和/etc/alternations/php->/usr/bin/php5)

/usr/bin/php
放进文件
/etc/shell
这是行尾!!虽然我使用“nano”在putty窗口中编辑文件,但我仍然得到了窗口的行结尾

在使用“dos2unix”转换所有行尾之后,事情就解决了

比较以下问题的答案: 我想我已经知道了(多亏了@EDIT1(来自问题)):

关于行尾(EOLNs)的几句话:

  • Win:“\r\n”(“\x0D\x0A”,CR+LF)
  • 尼克斯:“\n”(“\x0A”,CR)
php文件具有Win样式的EOLNs(至少是shebang行上的EOLNs),而一些Nix解释器不喜欢LF,这里就是这种情况

另一方面,nano(事实上是任何像样的编辑器)在编辑文件时会计算出文件中的行尾,在添加新行时,它们的EOLN与现有行一致

要使工作正常,请将文件EOLNs转换为Nix样式:

dos2unix/var/projects/user-backup.php

看起来不错。如果在命令行上运行
/usr/bin/env php
会发生什么情况?/usr/bin/env php/var/projects/user-backup.php工作得很好尝试过,仍然没有运气…这感觉像是一个荒谬的答案,但我无论如何都尝试过,它解决了我的问题。谢谢。@AngelS.Moreno:为什么这感觉很荒谬?它发现并解决了问题。对不起,我的意思是解决方案看起来很奇怪,而不是答案。
#!/usr/bin/php