将月份添加到shell脚本中的变量日期

时间:2017-06-30 04:43:14

标签: linux shell sh

我有一个日期传递到shell脚本,并且必须添加一个月。 例如:

passed_date=2017-06-01

我需要加1个月:

converted_date=2017-07-01

我如何在shell脚本中实现这一点。 我尝试将日期转换为自纪元以来的秒数,然后添加1个月,如:

date +%s -d 20170601 -d "+1 month"

然后通过

将秒转换回yyyy-mm-dd
date -d@$(date +%s -d 20170601 -d "+1 month") +%Y-%m-%d

但它基本上将1个月添加到当前系统日期

2 个答案:

答案 0 :(得分:5)

您似乎在寻找:

date -d "20170601+1 month" +%Y-%m-%d

在同一命令中使用多个-d标志时,date似乎只使用最后一个。

当然,您可以20170601替换包含任何日期的$VAR

答案 1 :(得分:0)

对于macOS High Sierra

date -v+1m -j -f "%Y-%m-%d" "2017-06-01"