我正在尝试检查网址列表是否有效。我正在尝试这个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
任何人都可以帮我一把吗?
答案 0 :(得分:1)
您错过了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
答案 1 :(得分:1)
您也可以让脚本检查每个网址,如果是重定向,则为您提供重定向的网址:
#!/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
`