场景
需要下载服务的文件(从数据库查询出来的指定的文件),且文件是可以通过浏览器访问的。
脚本实现
#!/bin/bash
file_list=(file1.txt file2.txt file3.txt)
base_url="http://example.com/files/"
target_dir="/path/to/target/directory"
for file in "${file_list[@]}"
do
url="$base_url$file"
echo "Downloading $url"
wget "$url" -P "$target_dir"
done
该脚本使用wget命令从指定URL下载文件,并将它们保存到指定的目标目录中。如果您更喜欢使用curl,您可以将命令替换为:
curl -o "$target_dir/$file" "$url"
如果你下载的网站是https的,那么你有可能出现如下问题:
下载失败
一种解决方法是使用"-k"或"--insecure"选项来禁用SSL证书验证。例如:
curl -k -o image.jpg https://example.com/image.jpg
另一种解决方法是使用"-cacert"选项来指定证书文件的路径。例如:
curl --cacert /path/to/certificate.crt -o image.jpg https://example.com/image.jpg
我本地是 MacOs,新建一个sh脚本,download.sh,然后执行 sh ./download.sh 后效果如下
因为我本地只有 curl 命令,没有wget命令,所以采用 curl方式下载
#!/bin/bash
file_list=(
ogpfflpz-20230316-wbn0a01u.png
iyyaaxjd-20230316-a4xvb8wh.png
ihctvgln-20230316-exvkc2au.png
ztveqkjj-20230316-uaiisun4.png
kpyquizc-20230316-vvy8sjp8.png
ccluwzhe-20230316-4j2ofgip.png
ecsjouwq-20230316-yt2psd68.png
yxfsdefd-20230316-rok3vmf3.png
WechatIMG4-20230320-kgmxgs7q.png
bzpedmwv-20230320-jwu8u5bc.png
boxhpmyk-20230315-f978gzrk.png
skzpqjot-20230315-mgqjof61.png
pibutgyr-20230315-8ahbdd25.png
kpxgphal-20230315-z7d1vzez.png
)
base_url="http://hz-zh-tst.hz-serve.com/preview/zh/static/image/"
target_dir="/Users/zhangburui/Documents/temp/zh"
for file in "${file_list[@]}"
do
url="$base_url$file"
echo "Downloading $url"
curl -o "$target_dir/$file" "$url"
done
评论区