1

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

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

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

不确定这是否可能......但任何帮助将不胜感激。

干杯

4

3 回答 3

1

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

于 2013-04-17T10:05:18.723 回答
0

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

yourscript /h

或者

yourscript --help

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

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

    echo y | yourscript
于 2013-04-17T10:36:08.843 回答
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标记之间)没有缩进。

于 2014-07-15T12:53:52.217 回答