Unix 使用基于变量的格式化日期和 wget
Unix using formatted date based on variable with wget
我有一个脚本,我在工作日使用 cron 安排了它。该脚本使用 wget 在每个工作日下载一个文件。 url 是基于日期的动态值。我创建了以下脚本:
day_or_weekend=`date +%w`
if [$day_or_weekend == 1] ; then
look_back=3
else
look_back=1
fi
wget -O file_name_`date +%Y%m%d`.csv https://website/filename/date/`date $look_back days ago + %Y-%m-%d`/type/csv
此脚本生成名称正确但内容为空的文件。我对编写 bash shell 脚本还很陌生,所以我不确定如何调试它。所以我的问题是:
- 我是否正确定义了
look_back
变量?
- 我是否正确地将日期参数添加到 wget url?
这应该可以解决您的空白问题。命令行对间距和引号非常讲究。
wget -O "file_name_$(date +%Y%m%d).csv" \
"https://website/filename/date/$(date -d "$look_back days ago" +%Y-%m-%d)/type/csv"
只要您使用 busybox 或 GNU 日期(BSD 日期必须从纪元表示中减去以秒为单位的时间,基本 Posix 日期实际上不能这样做)。
我有一个脚本,我在工作日使用 cron 安排了它。该脚本使用 wget 在每个工作日下载一个文件。 url 是基于日期的动态值。我创建了以下脚本:
day_or_weekend=`date +%w`
if [$day_or_weekend == 1] ; then
look_back=3
else
look_back=1
fi
wget -O file_name_`date +%Y%m%d`.csv https://website/filename/date/`date $look_back days ago + %Y-%m-%d`/type/csv
此脚本生成名称正确但内容为空的文件。我对编写 bash shell 脚本还很陌生,所以我不确定如何调试它。所以我的问题是:
- 我是否正确定义了
look_back
变量? - 我是否正确地将日期参数添加到 wget url?
这应该可以解决您的空白问题。命令行对间距和引号非常讲究。
wget -O "file_name_$(date +%Y%m%d).csv" \
"https://website/filename/date/$(date -d "$look_back days ago" +%Y-%m-%d)/type/csv"
只要您使用 busybox 或 GNU 日期(BSD 日期必须从纪元表示中减去以秒为单位的时间,基本 Posix 日期实际上不能这样做)。