2013-04-17 130 views
1

我有一个要求用户输入一个shell脚本(“请选择Y/N:”等)执行交互shell脚本在apache的

我想这通过网页来执行。

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

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

干杯

+1

无法回答您删除的问题,但:[Percona有一个插件,您不必付费](http://www.percona.com/doc/percona-pam-for-mysql/ intro.html) – Wrikken

+0

谢谢@Wrikken :) – bsmoo

回答

1

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

0

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

yourscript /h 

yourscript --help 

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

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

echo y | yourscript 
0

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

<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标记之间)。