如何在php脚本中运行php-a(交互式shell)



我正在尝试创建一个快捷脚本,用于在运行php-a之前设置一些环境变量和include路径。看起来是这样的:

#!/usr/bin/env php
<?php
putenv("ENVVAR=value");
passthru("php -a -d include_path=<path>");

这基本上是有效的,但是phpshell不能正确地输出其提示。

即php-a:的正常输出

$ php -a
Interactive shell
php > echo "hin";
hi
php >

此脚本的输出:

$ ./myscript.php
Interactive shell
echo "hin"; 
hi

此外,不支持使用箭头键浏览历史记录(甚至不支持沿着已经键入的内容向左或向右)。

有没有办法让它正常工作?

我使用的是Mac OS X,PHP 5.4.27。我已经尝试过将stderr重定向到stdout,以防这是某种原因(事实并非如此)。

与其用PHP编写,为什么不把它作为shell脚本呢。

#!/bin/bash
export ENVVAR=value
php -a -d include-path=whatever

我使用的是bash,它在Ubuntu 12.04下运行良好。我不确定OSX上有什么外壳。

最新更新