google-chrome 在通过 bash 在后台运行时,尽管 2>&1 > /dev/null,仍然会输出错误

google-chrome 在通过 bash 在后台运行时,尽管 2>&1 > /dev/null,仍然会输出错误

当我运行google-chrome 2>&1 > /dev/null &然后返回提示并访问具有无效证书的网站时,我仍然会在控制台的屏幕上输出错误。例如。

neubert@LAPTOP:~/folder$ [32094:32113:1228/101803.899469:ERROR:ssl_client_socket_impl.cc(975)] handshake failed; returned -1, SSL error code 1, net_error -202
[32094:32113:1228/101804.014732:ERROR:ssl_client_socket_impl.cc(975)] handshake failed; returned -1, SSL error code 1, net_error -202

我不明白。2>&1应该将 stderr 重定向到 stdout,然后> /dev/null将两者重定向到 /dev/null。如果这是对该命令所做工作的正确分析,那么为什么我仍然会从浏览器收到随机消息?我该如何做到不收到随机消息?

答案1

要丢弃任何输出所以STDOUTSTDERR,您需要像这样重定向:

google-chrome > /dev/null 2>&1
google-chrome &> /dev/null

您的语法不正确,您只是重定向了STDOUT它,因此您会在提示中收到消息。重定向的顺序很重要:

ls > dirlist 2>&1

上述命令将引导标准输出(STDOUT标准错误 ( STDERR) 到文件目录列表

而这个命令:

ls 2>&1 > dirlist

指示仅有的标准输出(STDOUT)到文件目录列表,因为标准误差之前复制了标准输出标准输出被重定向到 dirlist。

在哪里目录列表/dev/null在这种情况下等于。

参考

相关内容