2016-10-04 109 views
0

工作我想在PHP中執行以下命令:了shell_exec不crontab中

<?php 
    shell_exec('echo -e "`crontab -l`\n* * * * * mycommand" | crontab -'); 

當我這樣做,什麼都不會發生,沒有誤差修改,沒有消息,沒有任何反應。但是當我直接在bash上鍵入它時,它工作的很好!

所以我做了一些谷歌和一些傢伙告訴在命令的末尾使用2>&1。所以:

<?php 
    shell_exec('echo -e "`crontab -l`\n* * * * * mycommand" | crontab - 2>&1'); 

但現在當我回聲輸出我有此錯誤: 「 - 」

:0:在crontab文件壞分鐘的錯誤,無法安裝。

可能會發生什麼?

+0

因爲shell_exec不會輸出任何錯誤,所以不會有錯誤。它從命令返回任何輸出,但不輸出該輸出本身。如果你想捕獲返回值/錯誤,那麼你需要使用[exec()](http://php.net/manual/en/function.exec.php)。 –

+0

exec沒有輸出。 shell_exec有,對嗎?我在第二次測試中獲得了shell_exec的輸出結果。 –

+0

'shell_exec - 通過shell執行命令並將完整的輸出作爲字符串返回'無處說「輸出到屏幕」。 –

回答