1

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

#!/usr/bin/php

当我通过提供脚本的路径在 bash 中执行此脚本时(例如)

$ ./mattPWDtrim
$ bin/scripts/mattPWDtrim

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

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

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

$ `which mattPWDtrim`

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

有谁知道为什么?

编辑:这是失败的调用:

$ mattPWD_truncate

我是在与脚本相同的文件夹中,还是在系统上的其他任何地方都没有关系。

4

2 回答 2

1

PHP shell 脚本仍然需要<?php在其中启用“PHP 模式”。例如

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

输出是echo 'foo'

对比

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

输出是foo

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

于 2013-04-29T14:34:41.207 回答
0

我刚读到这条评论:

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

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

也许这将解决您的问题。

于 2013-04-29T14:43:00.203 回答