如何在BASH中用GNU date语法为每月首日定时任务配置日期参数
实现方案
你可以直接将原命令中START变量的赋值部分替换为GNU date原生支持的当月首日生成逻辑,修改后的完整命令如下:
START=$(date --date="$(date +%Y-%m)-01" '+%Y%m%d');END=$(date --date="yesterday" '+%Y%m%d')
逻辑说明
- 内层
date +%Y-%m会先输出当前系统时间对应的「年-月」格式字符串,例如2024-06 - 拼接
-01后得到当月首日的标准日期格式2024-06-01,再传入--date参数解析后,按要求输出%Y%m%d格式的数值
注意事项
- 以上写法适用于绝大多数Linux发行版默认带的GNU date工具,如果你使用的是macOS/BSD体系的系统,可将
START赋值替换为date -v1d '+%Y%m%d' - 放入YAML文件时注意检查双引号的转义规则,避免嵌套引号导致的解析错误
内容的提问来源于stack exchange,提问作者Adzor Verhaagen
相关产品推荐
相关产品推荐

