2013-04-17 128 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標記之間)。