2014-05-21 53 views
3

比方說,我想用PHP shell_exec()執行命令mycommand 10次。我應該做一個bash循環:使用PHP shell_exec()循環:使用php for()或bash for-do-done?

shell_exec('for i in {1 .. 10} do mycommand -i done'); 

或者更確切地說,一個PHP循環:

for($i = 1; $i <=10; ++$i) { shell_exec('mycommand -'.$i); } 

究竟是什麼原因(安全性,性能,風格,...)來選擇一個比其他?

+2

對我來說,使用第一個選項聽起來更好。畢竟,你只會打開一次shell而不是十次。 – fedorqui

回答

4

進入bash循環,因爲shell_exec函數只被調用一次。這將比多次撥打shell_exec快。啓用exec,shell_exec本身就是一個很大的安全問題。如果有人設法在你的服務器上傳一個PHP shell,那麼他可以破解你的服務器。

+1

非常感謝。 :) –

0

第一個選項執行一次shell腳本並在其中循環。這是更快。而在每個循環中,第二個腳本是多次調用,比第一次慢。