我们用来通过 Control-M 运行 shell 脚本,shell 脚本接受执行日期作为输入参数,无论我们运行什么订单日期,脚本都应该计算上个月的最后一天。我试图得到与下面相同的结果,但无法做到。请帮忙。
run_date=20210615
startMM_run_date=`date --date="$run_date" '%Y%m01'` --> 20210601
这里如何从 $startMM_run_date 获取“2021/05/31”。请指教。
答案1
假设GNUdate
run_date=20210615
# extract the year and month, and set the day as 01, then subtract 1 day
endOfLastMonth=$(date -d "${run_date:0:4}-${run_date:4:2}-01 - 1 day" "+%Y-%m-%d")