PHP脚本中的exec(foo | at now)

PHP脚本中的exec(foo | at now),php,command,exec,Php,Command,Exec,我目前正在尝试使用exec()在PHP脚本中执行一个命令,但时间延迟了 我试过: exec('at now | fooCommand >> aLog.log 2>&1'); 不起作用,并且: exec('fooCommand >> aLog.log 2>&1 | at now'); 都不是。然而: exec('echo "fooCommand >> aLog.log 2>&1" | at now"'); 可以工作

我目前正在尝试使用exec()在PHP脚本中执行一个命令,但时间延迟了

我试过:

exec('at now | fooCommand >> aLog.log 2>&1');
不起作用,并且:

exec('fooCommand >> aLog.log 2>&1 | at now');
都不是。然而:

exec('echo "fooCommand >> aLog.log 2>&1" | at now"');
可以工作,但似乎只启动echo命令,而不是所需的foo命令


你知道如何正确地写这篇文章吗?

如果你要推迟你的脚本,我认为使用睡眠而不是at(at只能用几分钟,不能用几秒钟)会更有益

fooCommand是一个变量吗?如果是这样,请尝试中间解决方案,但用双引号替换单引号

exec("fooCommand >> aLog.log 2>&1 | at now");

在PHP中,当您将变量括在单个引号中时,它们会被忽略。

如果您要延迟脚本,我认为使用sleep而不是at(at只能使用分钟以上,没有秒)会更有益

exec("fooCommand >> aLog.log 2>&1 | at now");
fooCommand是一个变量吗?如果是这样,请尝试中间解决方案,但用双引号替换单引号

exec("fooCommand >> aLog.log 2>&1 | at now");

在PHP中,当您将变量括在单个引号中时,它们将被忽略。

经过大量搜索,找到了解决方案:

exec("fooCommand >> aLog.log 2>&1 | at now");
exec('echo "fooCommand >> aLog.log 2>&1" | at now + 2 hours');

经过大量搜索,找到了解决方案:

exec('echo "fooCommand >> aLog.log 2>&1" | at now + 2 hours');

事实上,它不能正确地使用:
exec(“fooCommand>>aLog.log 2>&1”at now+“$i.”hour”)带有一个整数(例如3)。脚本运行时没有延迟尝试小时而不是小时。这也不能解决问题,脚本会立即运行。完整的srcipt是:
$randH=rand(0,27);exec(“php../app/console命令:async dBot--”“$square->getId()”>../dBot.log 2>&1;at now+”($randH+3)。“小时”)如果您通过终端手动运行该命令,该命令是否有效?这可能是“at”命令而不是PHP的问题已工作事实上,它无法与以下对象正确工作:
exec(“fooCommand>>aLog.log 2>&1 | at now+”$i.“hour”)带有一个整数(例如3)。脚本运行时没有延迟尝试小时而不是小时。这也不能解决问题,脚本会立即运行。完整的srcipt是:
$randH=rand(0,27);exec(“php../app/console命令:async dBot--”“$square->getId()”>../dBot.log 2>&1;at now+”($randH+3)。“小时”)如果您通过终端手动运行该命令,该命令是否有效?这可能是“at”命令而不是PHP的问题工作