如果最后检查的文件不存在,如何使用 wget 跳过 bash 脚本中的文件夹来批量下载文件?
这是示例代码:
#!/bin/bash
# Script to download Reports @ brazil.crl.edu/bsd/bsd
# Url : start @ http://brazil.crl.edu/bsd/bsd/u2038/ ends: /u2176
# There are less than 1000 files per address.
base1='http://brazil.crl.edu/bsd/bsd/u'
for i in {2038..2176};do
for s in {000001..001000}; do
wget -r $base1$i'/'$s'.tiff'
if [ $? -eq 0 ]; then
break
fi
done
done
它只下载第一个文件。有人可以帮忙吗?
答案1
为了使您能够将此问题标记为“已解决”,这里是我的评论的答案:
您的查询
if [ $? -eq 0 ]
正在检查 的退出状态0
,它代表“没有发生问题”(根据 的man wget
退出状态部分)。因此将 if 查询反转为
if [ $? -ne 0 ]
即“发生任何问题”将解决该问题。
退出状态0
是成功执行命令的标准。
bash
可以使用's 运算符来减少 if 查询||
,该运算符将检查命令终止是否成功:
wget -r $base1$i'/'$s'.tiff' || break