任务季度跑批,shell脚本里的start_dt跟end_dt如何以参数的形式传进去
时间: 2024-09-13 16:14:30 浏览: 36
在Shell脚本中,如果你需要根据季度对某个任务进行批量运行,通常会在命令行中提供`start_dt`(开始日期)和`end_dt`(结束日期)作为参数。这可以通过将参数解析并转换成特定格式来完成。以下是一个基本的例子:
```bash
#!/bin/bash
# 获取命令行参数
start_dt=$1
end_dt=$2
# 检查参数是否缺失
if [ -z "$start_dt" ] || [ -z "$end_dt" ]; then
echo "Error: Please provide both start and end dates in format YYYY-MM-DD."
exit 1
fi
# 使用date命令将字符串转换为日期
start_date=$(date -d "$start_dt" +%Y-%m-%d)
end_date=$(date -d "$end_dt" +%Y-%m-%d)
# 根据月份计算季度
quarter=$(( $(date -d "$start_date" +%m) / 3 ))
# 按照季度设置相应的季度起始和结束日期
q1_start="01-01"
q1_end="03-31"
q2_start="04-01"
q2_end="06-30"
q3_start="07-01"
q3_end="09-30"
q4_start="10-01"
q4_end="12-31"
case $quarter in
1) start_month="$q1_start" ;;
2) start_month="$q2_start" ;;
3) start_month="$q3_start" ;;
4) start_month="$q4_start" ;;
esac
end_month="$end_date"
# 执行季度任务,此处仅作示例,实际替换为你的任务执行逻辑
echo "Running tasks for Q$quarter from $start_month to $end_month..."
# ... 你的任务命令,如:run QuarterlyTask.sh $start_month $end_month
阅读全文