使用PHP填充Sh脚本值

时间:2015-05-12 14:18:00

标签: php linux bash shell

我有一个准备好的sh脚本来完成我想要的任务,这个sh脚本在执行后会显示一个菜单,例如:

Enter 1 to Select Menu 1 or 2 to select Menu 2

 1. Menu 1
 2. Menu 2

然后:

Enter a number to install X addon :

 1. Addon 1
 2. Addon 2

目前,我在我的PHP脚本中使用Sh脚本:

echo shell_exec('sh /etc/share/nginx/autoload-rev5.sh');

如何在不修改Sh脚本的情况下从PHP填充Sh脚本所需的值?有可能吗?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用expect - http://php.net/manual/en/expect.examples-usage.php

这与期望的Linux工具几乎相同,但您使用PHP进行编码

您可以在此处看到更多示例: http://php.net/manual/en/function.expect-expectl.php

基本上模式匹配shell输出和匹配,提交预定义的响应

答案 1 :(得分:1)

您可以使用proc_open功能执行此操作。 调用它来创建脚本的句柄(而不是使用shell_exec)然后解析它的输出并将你想要的内容写入其输入。