PHP脚本中的exec(foo | at now)
我目前正在尝试使用exec()在PHP脚本中执行一个命令,但时间延迟了 我试过: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('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的问题代码>工作