2014-01-18 100 views
0

我試圖設置一個將變量傳遞給php腳本的html表單,然後將它們傳遞給bash腳本。在將變量從php傳遞到bash時遇到問題

我能夠從HTML表單的PHP腳本成功傳遞變量,我能夠做出以下變量傳給我的bash腳本:

<?php 
shell_exec('./bashscript.sh testarg1 testarg2 testarg3 testarg4'); 
?> 

但是,當我使用以下:

<?php 
    shell_exec('./bashscript.sh $_POST[arg1] $_POST[arg2] $_POST[arg3] $_POST[arg4]'); 
?> 

我結束了:

[arg1] 
[arg2] 
[arg3] 
[arg4] 

這是我第一次嘗試了通過FR om php到bash。括號內的參數發送到一個沒有概率的數據庫。我將如何改變這個成功地將參數傳遞給我的bash腳本?謝謝。

+0

正確連接! ''./bashscript.sh'。$ _ POST ['arg1']。' '。$ _ POST ['arg2']。'...''例如 – kero

回答

0

變量在雙引號字符串內部展開,而不在單引號字符串內部展開。

shell_exec("./bashscript.sh $_POST[arg1] $_POST[arg2] $_POST[arg3] $_POST[arg4]"); 

這是基本的PHP語法,與使用shell無關。

你也應該使用escape_shell_arg來代替它之前的每個參數,以防它包含shell元字符。

+0

謝謝!這工作。 – user3147697