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

如何在Bash脚本中屏蔽curl输出,仅保留自定义连接结果提示?

调整curl连接检查脚本的方案

原脚本的问题在于:-vv参数会强制输出调试信息到标准错误流(stderr),而-s仅能抑制标准输出(stdout)的进度提示等内容,无法屏蔽-vv产生的stderr输出,导致出现多余内容。同时依赖grep匹配状态行的方式不够可靠,以下是两种优化方案:

方案一:直接获取HTTP状态码(推荐,更可靠高效)

通过curl的-w参数直接提取HTTP状态码,同时彻底屏蔽所有不必要的输出:

http_status=$(curl -s -o /dev/null -w "%{http_code}" https://github.com)
if [[ "$http_status" -eq 200 ]]; then
  echo "Cnxn successful"
else
  echo "Cnxn failed"
fi

参数说明:

  • -s:静默模式,抑制进度条等冗余输出
  • -o /dev/null:将响应正文丢弃,不输出到stdout
  • -w "%{http_code}":指定仅输出HTTP状态码到stdout
  • 此方案不依赖协议版本(如HTTP/1.1或HTTP/2),判断逻辑更可靠

方案二:保留类似原逻辑(屏蔽多余输出)

如果坚持使用匹配状态行的方式,需要移除-vv并将stderr重定向到/dev/null:

check=$(curl -s -I https://github.com 2>/dev/null | grep "HTTP/2 200")
if [[ -z "$check" ]]; then
  echo "Cnxn failed"
else
  echo "Cnxn successful"
fi

参数说明:

  • 移除-vv:避免产生调试信息输出到stderr
  • 2>/dev/null:将所有标准错误流内容丢弃,彻底屏蔽多余输出
  • -s:抑制stdout的进度提示等内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 12:05:23