通过apache执行交互式shell脚本

时间:2013-04-17 09:51:53

标签: apache shell input execute

我有一个需要用户输入的shell脚本(“请选择y / n:”等)

我希望通过网页执行此操作。

关于我如何做到这一点的任何想法?我已经尝试过php shell_exec ...但它只执行命令而不提示输入。

不确定这是否可行......但是非常感谢任何帮助。

干杯

3 个答案:

答案 0 :(得分:1)

通常,用户输入将使用HTML/Javascript。然后将输入发布到URL(例如PHP脚本),然后处理输入并执行脚本。

答案 1 :(得分:0)

enter code here检查脚本以查看是否有任何标志强制脚本在没有用户输入的情况下运行。 通常,您可以通过编写以下内容来提供帮助:

yourscript /h

yourscript --help

可能有一面旗帜。在帮助中查找有关“强制”或“提示”的信息。如果不可用,如果您使用的是Linux / Unix环境,则可以创建一个将输入发送到其他脚本的新脚本。不确定它是否适用于Windows。

这是一个非常简单的例子:

    echo y | yourscript

答案 2 :(得分:0)

唯一可以做到这一点的方法是以HTML格式重新创建CLI工具的配置部分,例如:

<form method="POST" action="/foo.php">
  Please select:
      <input type="radio" name="yesno" value="1">yes
      <input type="radio" name="yesno" value="0">no
  Some other option:
      <input type="text" name"someoption">
</form>

之后你需要创建一个foo.php来处理HEREDOC的输入部分,例如:

<?php
    $aData = some_validation_and_data_preparation_method($_POST);

    $sCmd = implode("\n", $aData);

    $sOutput = shell_exec("./some_cli_tool << EOF
{$sCmd}
EOF");

    print $sOutput;

注意实际HEREDOC缺少缩进(即EOF标记之间)。