shell - Unix 使用基于 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日期实际上不能这样做)。
推荐阅读
- reactjs - 如何将图像传递给样式化组件?
- php - 我的表单 show.blade 中的 MediumText 和 textArea
- c# - 在不使用目录对话框的情况下打印 FixedDocument
- mysql - 从 Nodejs 中的 mySQL 获取数据时如何从 Async/await 函数获取返回值
- c# - 退出在异步方法内开始的 while 循环
- html - 我需要起飞
从数据使用反应
- php - 每天仅随机生成一次数组
- android - Sqlite 查询以获取包含在名字或姓氏中的搜索文本的下一个可用字符
- multithreading - 我们的意思是休眠会话不是线程安全的,应该尽快关闭
- ios - 如何填充在其行中嵌入了 collectionViews 的 tableView 并按类型或类别组织它们?