2016-10-04 74 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执行命令并将完整的输出作为字符串返回'无处说“输出到屏幕”。 –

回答