【问题标题】:Fill Sh script values using PHP使用 PHP 填充 Sh 脚本值
【发布时间】:2015-05-12 14:17:59
【问题描述】:

我有一个现成的 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 脚本所需的值?有可能吗?

【问题讨论】:

  • 这取决于您的脚本如何读取数字
  • @fedorqui 脚本除了每个菜单选择的不同参数外,有 9 个菜单,我只对 2 个感兴趣
  • @Huey 创建文件的 Devops 不可用,我没有足够的经验来修改整个 sh 文件以开始传递 vars

标签: php linux bash shell


【解决方案1】:

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

这和expect Linux 工具差不多,但是你是用PHP 编码的

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

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

【讨论】:

  • 这对我有用,让我更灵活地从 PHP +1 与 shell 文件进行通信
【解决方案2】:

您可以使用proc_open 函数执行此操作。 调用它以在您的脚本上创建一个句柄(而不是使用 shell_exec),然后解析其输出并将您想要的内容写入其输入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 2019-06-23
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多