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

如何在Curl与Grep中匹配多个字符串?

实现curl输出的多字符串匹配判断

要在grep里同时匹配多个字符串(满足任意一个即可),有两种简单的实现方式,同时帮你修正了原代码里的语法问题:

方式1:用扩展正则表达式匹配“或”逻辑

通过grep -E启用扩展正则,用|分隔多个匹配目标:

if curl https://yahoo.com | grep -qE "yahoo|google"
then
    echo "包含yahoo或google"
else
    echo "不包含yahoo或google"
fi
  • -E:开启扩展正则,让|直接表示“或”的逻辑
  • -q:静默模式,只返回匹配状态,不输出具体匹配内容
  • 只要curl输出里存在yahoo或google任意一个字符串,grep就会返回成功状态,进入if分支

方式2:用多参数指定多个匹配项

如果不想用正则,可以重复使用-e参数来添加多个匹配字符串:

if curl https://yahoo.com | grep -q -e "yahoo" -e "google"
then
    echo "包含yahoo或google"
else
    echo "不包含yahoo或google"
fi
  • -e:每个-e后面跟一个独立的匹配字符串,任意一个匹配成功即返回成功状态

额外修正说明

原代码存在两个问题:

  1. if语句后缺少then关键字,bash语法要求if块必须以then开头
  2. echo的提示文本和你的需求不符(原代码写了hotmail、gmail),已调整为对应需求的表述

内容的提问来源于stack exchange,提问作者Software Fan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 20:22:04