在$ PATH变量中通过查找调用时,PHP脚本不会运行

时间:2013-04-29 14:28:16

标签: bash php

我的PHP脚本位于$ PATH变量的文件夹中。脚本的第一行如下:

#!/usr/bin/php

当我通过提供脚本路径(例如)

在bash中执行此脚本时
$ ./mattPWDtrim
$ bin/scripts/mattPWDtrim

或者使用PHP CLI程序执行它:

$ php mattPWDtrim
$ php bin/mattPWDtrim
$ php -f mattPWDtrim

脚本以预期输出正常运行。 如果我执行以下操作,它也可以正常运行:

$ `which mattPWDtrim`

但是,如果我尝试在没有PHP CLI程序的情况下运行脚本,并且没有指定脚本的路径,那么脚本就不会运行。

有谁知道为什么?

编辑:这是失败的调用:

$ mattPWD_truncate

如果我与脚本位于同一文件夹中,或者系统中的任何其他位置,则无关紧要。

2 个答案:

答案 0 :(得分:1)

PHP shell脚本仍然必须有<?php才能启用“PHP模式”。 e.g。

#!/usr/bin/php
echo 'foo'

输出为echo 'foo'

v.s。

#!/usr/bin/php
<?php
echo 'foo'

输出为foo

请记住,没有“PHP脚本”这样的东西。只有文件中包含<?php ... ?>个PHP代码块。如果没有<?php来启用PHP模式,文件的内容将被简单地视为普通输出。

答案 1 :(得分:0)

我刚读过这条评论:

  

我建议使用“#!/ usr / bin / env php”而不是硬编码   php的路径,因为这允许php二进制文件在任何地方   用户的路径。

在此页面上:http://blog.digitalstruct.com/2007/04/24/tips-and-tricks-php-shell-scripts/

也许这会解决您的问题。