dev/null 和 dev/null 2>&1?

dev/null 和 dev/null 2>&1?

如果我运行 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 通常是一封邮件(如果发生错误,请发送邮件给管理员)

相关内容