加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

对于日期字符串yyyymmdd ,Bash -value对于base(错误标记为“09”

发布时间:2020-12-15 22:19:58 所属栏目:安全 来源:网络整理
导读:参见英文答案 Value too great for base (error token is “08”) ????????????????????????????????????1个 我试图以yyyymmdd格式生成一个startDate,这个日期是上个月第三天的第一天.例如,当前月份是七月(07),所以我需要将我的开始日期作为四月(04) – 2015
参见英文答案 > Value too great for base (error token is “08”) ????????????????????????????????????1个
我试图以yyyymmdd格式生成一个startDate,这个日期是上个月第三天的第一天.例如,当前月份是七月(07),所以我需要将我的开始日期作为四月(04) – 20150401的第一天.

为了在bash中实现这一点,我使用了以下命令:

StartDate=$(date -d "-3 month -$(($(date +%d)-1)) days" +"%Y%m%d")

但是,这给了我以下错误:

line 93: 09: value too great for base (error token is "09")

我不想更改StartDate变量的格式.对于单个数字月份(1-9),格式应该在yyyymmdd格式的月份数前面有一个前导零.

有什么东西我错过了吗?

提前致谢!

解决方法

bash正在看09并尝试将其视为一个失败的八进制数.

您可以使用10#作为日期值的前缀,以强制使用基数.见Shell Arithmetic的倒数第二段.

StartDate=$(date -d "-3 month -$((10#$(date +%d)-1)) days" +"%Y%m%d")

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读