【发布时间】:2016-10-05 11:24:39
【问题描述】:
我正在尝试在 php 中执行此命令:
<?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 文件中的小错误,无法安装。
会发生什么?
【问题讨论】:
-
您不会收到任何错误,因为 shell_exec 不会输出任何错误。它返回命令的任何输出,但不输出该输出本身。如果要捕获返回值/错误,则需要改用exec()。
-
exec 没有输出。 shell_exec 有,对吧?我在第二次测试中得到了 shell_exec 的输出。
-
shell_exec — Execute command via shell and return the complete output as a string没有地方说“输出到屏幕”。 -
我正在回显字符串。我会在问题上说出来。