- 此问题在此处已有答案**:
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)
3条答案
按热度按时间nvbavucw1#
我想我已经找到了(由于问题***@EDIT1***)。
关于[Wikipedia]: Newline(EOLNs)的几个词:
您的 .php 文件有 Win 风格的 EOLN(至少是 shebang 行上的),而一些 Nix 解释器不喜欢 CR,这里就是这种情况。
顺便说一句,Nano(或任何像样的编辑器,事实上)在编辑文件时计算出文件中的行尾,在添加新行时,它们的 EOLN 与现有的一致。
要使其正常工作,请将文件 EOLNs转换为 Nix(Linux)样式:
可能还需要读取[SO]: Flask CLI throws 'OSError: [Errno 8] Exec format error' when run through docker-compose (@CristiFati's answer)。
xoefb8l82#
将
/usr/bin/php
放入文件/etc/shells
中。irlmq6kh3#
这是行尾!!虽然我用“纳米”编辑文件在腻子窗口,我仍然得到了窗口行尾。
在使用“dos 2unix”转换所有行尾之后,事情就解决了!
比较此问题的答案:shebang line not working