我正在尝试制作一个程序,可以将一系列漫画扫描转换为一个 pdf 文件,并且我不想尝试下载图片来确定我是否有正确的网址。是否有一个 shell 脚本命令可以用来检查网页是否存在?
最佳答案
在 *NIX 下,您可以使用 curl
发出简单的 HEAD
请求(HEAD
仅要求 header ,而不要求页面正文):
curl --head http://myurl/
那么你可以只取第一行,其中包含HTTP状态代码(200 OK,404 Not Found等):
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
不要显示“进度条”。
关于shell - 如何通过 shell 脚本确定网页是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2924422/