禁止 shell 脚本的输出

禁止 shell 脚本的输出

我在我的 shell 脚本上运行这一行

sudo npm install -g yaml-cli -y 2>&1 >/dev/null

我希望不会得到任何输出,但我仍然得到

npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue

答案1

重定向是从左到右评估的,你也可以用相反的方式。只需交换重定向:

sudo npm install -g yaml-cli -y >/dev/null 2>&1

sudo npm install -g yaml-cli -y 2>&1 >/dev/null

  • 首先,对于2>&1,STDERR (FD 2) 被发送到终端(准确地说,STDOUT (FD 1) 当前连接到的位置,大概是终端),因此显示错误

  • 然后,对于>/dev/null,STDOUT 被发送到/dev/null,这稍后会发生

相关内容