我有一个就绪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脚本所需的值?有可能吗?
您可以尝试使用期望-http://php.net/manual/en/en/expect.examples.examples-usage.php
这与Expect Linux工具几乎相同,但是您在PHP
中进行编码您可以在这里看到更多示例:http://php.net/manual/en/function.expect-expectl.php
基本上是模式匹配的外壳输出并在匹配时,提交预定义的响应
您可以使用proc_open函数来执行此操作。称其为在脚本上创建句柄(而不是使用shell_exec),然后解析其输出并将您想要的内容写入其输入。