You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash环境下AWS CLI错误输出重定向不生效,如何隐藏报错?

问题根因

你的重定向规则配置存在两处逻辑错误:

  • 你写的2>&1 >/dev/null是作用在管道右侧的grep命令上的,产生错误输出的aws命令的stderr完全没有被重定向,所以会直接打印到终端
  • Bash的重定向是按从左到右顺序执行的,就算你把重定向规则挂载到aws命令上,写2>&1 >/dev/null也无法隐藏stderr:你先把stderr指向了当前的stdout终端,后续再把stdout改向到/dev/null,stderr不会同步更新指向,还是会输出到终端。

解决方案

根据你的需求,推荐两种写法:

写法1:直接丢弃aws的错误输出(性能最优)

直接把aws命令的stderr单独重定向到/dev/null,不进入管道处理:

aws rds describe-db-instances --db-instance-identifier test-db 2>/dev/null | grep -qi DBInstanceStatus >/dev/null

写法2:把aws的stderr接入管道处理

如果后续需要对错误输出做过滤处理,可以先把aws的stderr合并到stdout再进入管道:

aws rds describe-db-instances --db-instance-identifier test-db 2>&1 | grep -qi DBInstanceStatus >/dev/null

内容的提问来源于stack exchange,提问作者Abhi S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 15:06:08