在 Curl 和 Grep 中搜索多个字符串

问题描述 投票:0回答:1

所以,我有这个 if/else 条件来检查curl 输出中的某个字符串。 如果输出有“yahoo”或“google”,那么我希望它命中 if 块,否则命中 else 块。 我使用 -q 来搜索 yahoo。但我不确定如何添加两个条件[即一个字符串为“yahoo”,另一个字符串为 同一curl查询中的“google”]

if curl https://yahoo.com | grep -q "via yahoo"
    echo "via yahoo or hotmail"
else
    echo "not via yahoo or gmail"
fi
bash shell if-statement curl grep
1个回答
0
投票

假设:

  • via google
    最多只能在
    curl
    结果中出现一次
  • via yahoo
    最多只能在
    curl
    结果中出现一次

一个拼凑:

if [[ $(curl https://yahoo.com | grep -Eo 'via (google|yahoo)' | wc -l) -eq 2 ]]
    echo "via google AND via yahoo"
else
    echo "not both or whatever msg you choose"
fi

放松假设(即

via google
和/或
via yahoo
)可以在
curl
结果中多次出现:

更笨拙:

if [[ $(curl https://yahoo.com | grep -Eo 'via (google|yahoo)' | sort -u | wc -l) -eq 2 ]]
    echo "via google AND via yahoo"
else
    echo "not both or whatever msg you choose"
fi
© www.soinside.com 2019 - 2024. All rights reserved.