为什么我不能让 wget 将标准输出传输到 /dev/null?

为什么我不能让 wget 将标准输出传输到 /dev/null?

当我运行此命令时,它按预期工作:

wget -p https://www.google.com/

运行此命令后,我使用以下方法检查错误代码

echo $?

这将返回 0,表明最后一个命令运行时没有遇到任何错误。

现在我运行:

wget -p https://www.google.com/ >/dev/null

最后一个命令应该抑制标准输出 - 但事实并非如此。那么到底发生了什么?这几乎似乎是 wget 特有的,因为我以前使用其他命令时从未遇到过管道标准输出的问题。

还值得注意的是,如果您运行:

wget -p https://www.google.com/ 2>/dev/null

所有输出均被抑制。有人愿意为困惑的人解惑吗?

答案1

嗯,wget -p https://www.google.com/ &> /dev/null可以正常工作。这是因为wget输出到 stderr 而不是 stdout。您可以检查 wget手动的

‘--输出文件=日志文件’

将所有消息记录到日志文件。消息通常会报告给标准错误。

相关内容