当我运行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
要丢弃任何输出所以STDOUT
&STDERR
,您需要像这样重定向:
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
在这种情况下等于。