我试图做一个程序,可以将一系列的漫画扫描成一个PDF文件,我不希望有尝试下载的图片,以确定如果我有正确的网址。 是否有一个shell脚本命令,我可以使用,只是检查,如果一个网页的存在?
Answer 1:
在一个* NIX,您可以使用curl
发出一个简单的HEAD
请求( HEAD
只要求头,而不是页面正文):
curl --head http://myurl/
然后,你可以只需要第一线,其中包含HTTP状态代码(200 OK,404未找到,等):
curl -s --head http://myurl/ | head -n 1
然后检查,如果你有一个体面的响应(状态码为200或3 **):
curl -s --head http://myurl/ | head -n 1 | grep "HTTP/1.[01] [23].."
这将输出如果状态代码是好的,或没有,如果它不是第一线。 您还可以通过管道将到/ dev / null来获得无输出,并使用$?
以确定它的工作或没有:
curl -s --head http://myurl/ | head -n 1 | grep "HTTP/1.[01] [23].." > /dev/null
# on success (page exists), $? will be 0; on failure (page does not exist or
# is unreachable), $? will be 1
编辑 -s
只是告诉curl
不显示“进度条”。
Answer 2:
使用curl获得状态代码,并检查所需的值。
status=$(curl -s --head -w %{http_code} http://www.google.com/ -o /dev/null)
echo $status
Answer 3:
首先确保没有任何issue.If要求授权,您提供的用户名和密码.Create一个shell脚本文件(checkURL.sh)并粘贴下面的代码授权。
希望这会帮助你。
checkURL.sh
yourURL="http://abc-repo.mycorp.com/data/yourdir"
if curl --output /dev/null --silent --head --fail "$yourURL"
then
echo "This URL Exist"
else
echo "This URL Not Exist"
fi
它为我的Nexus和其他库的工作。
Answer 4:
你总是可以只使用wget
; 我做的代码更简单。
if [[ $(wget http://url/ -O-) ]] 2>/dev/null
then echo "This page exists."
else echo "This page does not exist."
fi
使用-O-
与选项wget
意味着它会尝试输出页面的内容,但只有当它的存在。 所以,如果没有任何输出,则该页面不存在。 的2>/dev/null
只是发送输出(如果有的话)到垃圾桶。
我知道这是过期的,但我希望这有助于。
Answer 5:
wget或curl将做的工作。 看到这里的wget或卷曲的详细信息和下载位置。 供应URL这些命令行工具,并检查响应。
文章来源: How do I determine if a web page exists with shell scripting?