如果我运行 php -q /http/get_pdf.php,那么 dev/null 和 dev/null 2>&1 是什么意思?
抱歉,我的问题是,当我们从 url 运行此文件时,它将创建一个 .pdf 文件和邮件,我们希望使用 cron 发送邮件,在这种情况下,我们需要运行一次 pdf 报告。
假设转到 urlhttps://example.com/get_pdf.php它会询问我的邮件 ID,一旦我们添加邮件 ID,它就会从下拉菜单中生成您要求的报告,例如本周的销售额是多少?它将是有关邮件 ID 的邮件,我们不想从 URL 发送,我们希望从 cron 发送。能帮帮我吗?
答案1
我假设您正在寻找类似这样的区别:
$ php -q /http/get_pdf.php > /dev/null
和这个:
$ php -q /http/get_pdf.php > /dev/null 2>&1
第一个版本重定向stdout
到/dev/null
,第二个版本将和stdout
都重定向stderr
到/dev/null
。
答案2
当你有如下命令时:
命令 > /dev/null 2>&1
“> /dev/null”部分表示将命令的所有标准输出重定向到位存储桶。“2>&1”部分表示将所有标准错误重定向到标准输出(进而重定向到 /dev/null)
因此本质上这将抑制所有输出。
答案3
你的意思是类似这样/command >/dev/null 2>&1
?
/command
:将会运行>/dev/null
:将标准输出重定向为无(/dev/null
是一种特殊的空设备,这意味着不会显示任何输出)2>&1
:将错误重定向到标准输出。
如果您以 cron 形式运行此程序,则 stdout 通常是一封邮件(如果发生错误,请发送邮件给管理员)