【问题标题】:Check if a list of urls exist or not in bash with curl使用 curl 检查 bash 中是否存在 url 列表
【发布时间】:2018-05-06 23:31:43
【问题描述】:
我正在尝试检查 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
谁能帮帮我?
【问题讨论】:
标签:
bash
curl
syntax-error
【解决方案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
【解决方案2】:
你也可以让脚本检查每个 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
`