linux - 当月份的日期在 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")
解决方案
k314159 的回答是正确的。这是一个替代答案:不要date
通过指定%-d
而不是在 的输出中使用前导零%d
:
echo $(($(date +"%-d") - 1))
推荐阅读
- asp.net - 如何使用 .NET MVC 使用 Microsoft Graph 检索经理下的成员?
- sms - 如何从 Twilio 可编程 SMS API 读取收到的 SMS 消息
- python - 如何将 Tkinter Text 小部件中的选定文本放在前面?
- angular - Angular 4,多个api调用并等待结果
- python - 这些 print(check_output(["ls", "../input"]).decode("utf8")) 是什么意思?
- multithreading - SAS 中的并行处理
- c# - 无法将模型值分配给剃须刀页面中的参数
- r - 使用 R 删除行
- reporting-services - SSRS级联参数和多个结果
- python - 在 python 中生成特定的排列模式