我正在尝试创建一个快捷脚本,用于在运行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上有什么外壳。