2013-11-26 72 views
0

我正在嘗試在PHP腳本中使用exec()執行命令,但延遲了時間。在PHP腳本中執行(foo | 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命令,而不是期望fooCommand。

任何想法如何寫這糾正?

回答

0

發現的解決方案,很多搜索後:

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

如果你延遲你的腳本,我認爲使用睡眠而不是在(在只能使用分鐘和上,沒有秒)會更有益。

fooCommand是一個變量嗎?如果是這樣,嘗試你的中間解決方案,但用雙引號替換你的單引號。

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

在PHP中,將變量放在單引號中時將被忽略。

+0

完美的作品,謝謝! – Nicorr

+0

事實上,它不能正常工作: 'exec(「fooCommand >> aLog.log 2>&1 | at now +」。$ i。「hour」);' 與我一個整數(例如3) 。該腳本毫不拖延地運行 – Nicorr

+0

嘗試幾小時而不是一小時。 –