重定向PHP-Shell-Script输出

时间:2010-06-12 15:04:04

标签: php bash redirect scripting

我有一个php脚本foo.php

#!/usr/bin/php -c /etc/php5/cli/php.ini -q
<?php
  echo 'hello'; // & do some stuff
?>

我将此脚本称为而非包装为sh-script,但直接在cron作业中使用它。 为了摆脱它的输出我通常会创建一个调用

的sh文件
/usr/bin/php -c /etc/php5/cli/php.ini -q foo.php > /dev/null 2 > /dev/null 

现在我想在自己的php文件的解释器声明中这样做... 所以我正在寻找语法:

#!/usr/bin/php -args [file's content] > /redirect 2 > /redirect

我有点困难时间用谷歌...所以如果有人能指出我正确的方向我真的很感激它!

提前谢谢

Corelgott

2 个答案:

答案 0 :(得分:0)

shebang语句从来没有打算控制脚本的输出,它更像是一个使用这个程序来执行这里下面的类型的交易,因此没有你想要的选项。 / p>

除非解释器本身有输出参数(php cli没有),否则你需要将> /dev/null语句保留在crontab行中。

您还可以修改脚本,使其具有全局布尔值$output,包含所有带print语句的if语句,并将其包含在文件顶部。

答案 1 :(得分:0)

就像@Victor Stanciu说的那样,你直接在cron job命令中重定向输出,但我能想到的另一种方式是:

php -r "ob_start(); include 'my_script'; ob_end_clean();"

我认为您可以使用fclose(STDOUT)关闭标准输出,但显然常量STDINSTDOUTSTDERR不再存在。