
我有一個 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