首页 > 解决方案 > 当月份的日期在 10 号之前时,无法设置 unix 时间戳值

问题描述

当月份的日期在 10 号之前时,我无法获取正确的分区值。有人可以建议我为 PARTITION 赋值的逻辑错误吗?

NEW=`date +"%Y%m" --date="next month" | sed 's/ *//'`
OLD=`date +"%Y%m" --date="last month" | sed 's/ *//'`
PARTITION=`date --date="+2 month -$(($(date +"%d")-1)) days 00:00:00" +"%s"  | sed 's/ *//'`

我得到的错误是关于 PARTITION 声明:

-bash: 08: value too great for base (error token is "08")

标签: linuxbash

解决方案


k314159 的回答是正确的。这是一个替代答案:不要date通过指定%-d而不是在 的输出中使用前导零%d

echo $(($(date +"%-d") - 1))

推荐阅读