我有一个 bash 脚本,用于检查 Web 目录中是否存在文件。如果该文件不存在,它就会退出。如果该文件确实存在于 Web 目录中,则会下载该文件。
然而,该脚本工作正常,我只是在满足“存在”条件后实际触发脚本(第 4 行)之前测量了 5:00 分钟以上的延迟时间。
我是否在该脚本中遗漏了一些导致脚本运行延迟的内容?
Bash 脚本代码:
url="http://website.url/directory/file.txt"
if curl -f ${url} >/dev/null 2>&1; then
bash some_bash_script.sh
else
exit 0
fi
答案1
我最终使用wget --spider
来绕过长时间的下载延迟curl
。
修改后的 Bash 脚本:
url="http://website.url/directory/file.txt"
if wget --spider ${url} >/dev/null 2>&1; then
bash some_bash_script.sh
else
exit 0
fi
答案2
你也可以这样做:
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
if $?
; then
bash somescript.sh
else
exit 0
fi
归功于@zneak