代码之家  ›  专栏  ›  技术社区  ›  Jerome

用于检查成功响应的脚本,而不仅仅是200[已关闭]

  •  -3
  • Jerome  · 技术社区  · 2 月前

    以下代码段旨在检查对get请求URL的响应

    for url in "${urls[@]}"; do
        response=$(curl -Is "$url" | head -n 1)
        if [[ ! $response =~ "200 OK" ]]; then
            down_urls+="$url\n"
        fi
    done
    

    然而,当目标是处理所有成功响应的响应(200-299)时,它被限制为200响应。

    这个片段应该如何修改?

    1 回复  |  直到 2 月前
        1
  •  1
  •   Paolo    2 月前

    如果你使用 curl 因此它只返回响应码。然后,更改正则表达式比较就很简单了:

    for url in "${urls[@]}"; do
        response=$(curl -s -o /dev/null -w "%{http_code}" "$url")
        if [[ ! $response =~ ^2[0-9][0-9]$ ]]; then
            down_urls+="$url\n"
        fi
    done