Ben*_*ird 58 bash pipe output-redirect dev-null
我想在后台运行一个程序(google-chrome),但是阻止它向终端输出任何消息.
我试过这样做:
google-chrome 2>&1 1>/dev/null &
Run Code Online (Sandbox Code Playgroud)
但是,终端仍然填满没有消息,如:
[5746:5746:0802/100534:错误:object_proxy.cc(532)]无法调用方法:org.chromium.Mtpd.EnumerateStorag ...
我究竟做错了什么?如何将所有输出重定向到/dev/null
?
Mic*_*nez 65
重定向运算符从左到右进行计算.你做错了什么是2>&1
第一个,它指向当前指向2
的同一个地方1
,这是本地终端屏幕,因为你还没有重定向1
.您需要做的是以下任一项:
2>/dev/null 1>/dev/null google-chrome &
Run Code Online (Sandbox Code Playgroud)
要么
2>/dev/null 1>&2 google-chrome &
Run Code Online (Sandbox Code Playgroud)
重定向运算符相对于命令的位置无关紧要.您可以在命令之前或之后放置它们.
use*_*332 37
在Redirection
bash的参考手册中说:
运算符
[n]>&word
用于复制输出文件描述符
要重定向都stderr
和stdout
到file
你应该使用形式
&>file
Run Code Online (Sandbox Code Playgroud)
关于你的情况,这意味着替代
2>&1 1>/dev/null
Run Code Online (Sandbox Code Playgroud)
同
&>/dev/null
Run Code Online (Sandbox Code Playgroud)