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

时间:2014-04-23 20:13:26

标签: php shell

我正在尝试创建一个快捷方式脚本,用于在运行php -a之前设置一些环境变量和包含路径。所以它看起来像这样:

#!/usr/bin/env php
<?php

putenv("ENVVAR=value");
passthru("php -a -d include_path=<path>");

这大部分都有效,但是php shell没有正确输出它的提示。

即。来自php -a的正常输出:

$ php -a
Interactive shell

php > echo "hi\n";
hi
php >

此脚本的输出:

$ ./myscript.php
Interactive shell

echo "hi\n"; 
hi

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

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

我使用的是Mac OS X,PHP 5.4.27。我已经尝试将stderr重定向到stdout,以防这是某种原因(它不是。)

1 个答案:

答案 0 :(得分:1)

不是用PHP编写,而是为什么不把它作为shell脚本。

#!/bin/bash

export ENVVAR=value

php -a -d include-path=whatever

我使用bash,它在Ubuntu 12.04下运行正常。我不确定OSX上有哪些shell可用。