Shell-Script

將可變日期增加一個月

  • January 11, 2020

date -d有沒有辦法在不使用該選項的情況下將輸入日期增加一個月?我的機器沒有這個功能。

樣本:

$yearmonth=201912

預期輸出:

201912
202001

POSIXly(假設$yearmonth沒有前導零):

case $((yearmonth += 1)) in
 (*13) yearmonth=$((yearmonth + 100 - 12))
esac

使用 ksh/bash/zsh,您可以將其縮短為:

((++yearmonth % 100 <= 12)) || ((yearmonth += 100 - 12))

或者

(( yearmonth += ((yearmonth % 100) == 12)?(100 - 11):1 ))

引用自:https://unix.stackexchange.com/questions/561533