如何确定是否与shell脚本存在一个网页?如何确定是否与shell脚本存在一个网页?(How do

2019-05-13 04:53发布

我试图做一个程序,可以将一系列的漫画扫描成一个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:

wgetcurl将做的工作。 看到这里的wget或卷曲的详细信息和下载位置。 供应URL这些命令行工具,并检查响应。



文章来源: How do I determine if a web page exists with shell scripting?
标签: shell unix