繁体   English   中英

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

[英]How can I run php -a (interactive shell) from inside a php script?

我正在尝试创建一个快捷脚本来设置一些环境变量和include路径,然后再运行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,以防某种原因(并非如此)。

与其以PHP编写,不如将其作为shell脚本。

#!/bin/bash

export ENVVAR=value

php -a -d include-path=whatever

我正在使用bash,在Ubuntu 12.04下它可以正常工作。 我不确定OSX上可用的shell。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM