使用curl检查bash中是否存在URL列表

使用curl检查bash中是否存在URL列表,bash,curl,syntax-error,Bash,Curl,Syntax Error,我试图检查URL列表是否有效。我正在尝试这个Bash,但是我没有得到正确的语法 for url in $(cat domains.txt) do curl --output /dev/null --silent --head --fail "$url"; then echo "URL exists: $url" else echo "URL does not exist: $url" done 有人能帮我一下吗?您缺少一个if(以及相应的fi)来让代码正常工作 #!/bin/bash

我试图检查URL列表是否有效。我正在尝试这个Bash,但是我没有得到正确的语法

for url in $(cat domains.txt) 
do curl --output /dev/null --silent --head --fail "$url"; then
  echo "URL exists: $url"
else
  echo "URL does not exist: $url"
done

有人能帮我一下吗?

您缺少一个
if
(以及相应的
fi
)来让代码正常工作

#!/bin/bash
for url in $(cat domains.txt) 
do 
  if curl --output /dev/null --silent --head --fail "$url"; then
    echo "URL exists: $url"
  else
    echo "URL does not exist: $url"
  fi 
done

您缺少使代码正常工作的
if
(以及相应的
fi

#!/bin/bash
for url in $(cat domains.txt) 
do 
  if curl --output /dev/null --silent --head --fail "$url"; then
    echo "URL exists: $url"
  else
    echo "URL does not exist: $url"
  fi 
done

您还可以让脚本检查每个url,如果是重定向,则为您提供重定向的url:

#!/bin/bash
for URL in $(cat urls.txt) ; do 
res="$(curl --silent --head --location --output /dev/null --write-out '%{http_code}'  $URL | grep '^2')"
if [[ $res == 200 ]]; then
curl -s -L -I -o /dev/null -w $URL' -> %{url_effective}\n' $URL;
else
echo "$URL -> "does not exist""
fi 
done

`

您还可以让脚本检查每个url,如果是重定向,则为您提供重定向的url:

#!/bin/bash
for URL in $(cat urls.txt) ; do 
res="$(curl --silent --head --location --output /dev/null --write-out '%{http_code}'  $URL | grep '^2')"
if [[ $res == 200 ]]; then
curl -s -L -I -o /dev/null -w $URL' -> %{url_effective}\n' $URL;
else
echo "$URL -> "does not exist""
fi 
done
`

检查。检查。