我正在尝试创建一个快捷方式脚本,用于在运行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,以防这是某种原因(它不是。)
答案 0 :(得分:1)
不是用PHP编写,而是为什么不把它作为shell脚本。
#!/bin/bash
export ENVVAR=value
php -a -d include-path=whatever
我使用bash,它在Ubuntu 12.04下运行正常。我不确定OSX上有哪些shell可用。