nat*_*ome 1 bash shell curl http-status-code-404
我正在尝试编写一个 shell 脚本,使用 cURL 下载文件并检测 url 是否导致 404 错误。如果 url 是 404,那么我想将 url 链接或文件名保存到文本文件中。
url 格式为http://server.com/somefile[00-31].txt
我一直在搞乱我在谷歌上找到的内容,目前有以下代码:
#!/bin/bash
if curl --fail -O "http://server.com/somefile[00-31].mp4"
then
echo "$var" >> "files.txt"
else
echo "Saved!"
fi
Run Code Online (Sandbox Code Playgroud)
#!/bin/bash
URLFORMAT="http://server.com/somefile%02d.txt"
for num in {0..31}; do
# build url and try to download
url=$(printf "$URLFORMAT" $num)
CURL=$(curl --fail -O "$url" 2>&1)
# check if error and 404, and save in file
if [ $? -ne 0 ]; then
echo $CURL | grep --quiet 'The requested URL returned error: 404'
[ $? -eq 0 ] && echo "$url" >> "files.txt"
fi
done
Run Code Online (Sandbox Code Playgroud)
这是使用 URL 参数的版本:
#!/bin/sh
for url in "$@"; do
CURL=$(curl --fail -O "$url" 2>&1)
# check if error and 404, and save in file
if [ $? -ne 0 ]; then
echo $CURL | grep --quiet 'The requested URL returned error: 404'
[ $? -eq 0 ] && echo "$url" >> "files.txt"
fi
done
Run Code Online (Sandbox Code Playgroud)
您可以这样使用: sh download-script.sh http://server.com/files {00..21}.png http://server.com/otherfiles {00..12}.gif
范围扩展将在 bash shell 上运行。
归档时间: |
|
查看次数: |
11116 次 |
最近记录: |