shell中 >/dev/null 2>&1 是什么意思

简略的说,>/dev/null是把标准输出放到黑洞(即没地方保存),

2>&1 是把错误输出并到标准输出流

两个合起来,就是错误输出和标准输出都进黑洞了。

linux在执行shell命令之前,就会确定好所有的输入输出位置,并且从左到右依次执行重定向的命令。那么我们同样从左到右地来分析 2>&1 >/dev/null :

  1. 2>&1,将错误输出绑定到标准输出上。由于此时的标准输出是默认值,也就是输出到屏幕,所以错误输出会输出到屏幕。
  2. >/dev/null,将标准输出1重定向到/dev/null中。

我们用一个表格来更好地说明这两条命令的区别:

命令 标准输出 错误输出
>/dev/null    2>&1 丢弃 丢弃
2>&1    >/dev/null 丢弃 屏幕

详见:https://www.cnblogs.com/everest33Tong/p/11553383.html

你可能感兴趣的:(linux,shell)