首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将文件中的日期与系统日期进行比较时出现错误:第7行: 10#2020-12-09:值对于base来说太大(错误标记为"09")

将文件中的日期与系统日期进行比较时出现错误:第7行: 10#2020-12-09:值对于base来说太大(错误标记为"09")
EN

Stack Overflow用户
提问于 2020-09-21 15:08:37
回答 1查看 27关注 0票数 0
代码语言:javascript
运行
复制
 #!/bin/bash
docker logs <container_name> | grep 'expiration date of' | tail -1 | cut -d ' ' -f 14 | cut -c 2-11 > /tmp/dt

dateFile=`cat /tmp/dt`

NOW=$( date +%F )

 if [ $((10#$dateFile)) -gt ${NOW} ]; then
   echo No Renewal Required
else
   echo Renewal Required
fi

我从一个文件中获取日期并将该值发送到另一个文件/tmp/d.然后将该日期与系统日期进行比较以创建logic.but获取错误:第7行: 10#2020-12-09:值对于基数来说太大(错误标记为"09")。另外,我使用#10来消除八进制错误。

EN

回答 1

Stack Overflow用户

发布于 2020-09-21 15:36:18

-gt比较数字,这意味着在bash中是整数。Bash将这两个操作数解释为算术表达式,而您的操作数被解析为

代码语言:javascript
运行
复制
10#2020 - 12 - 09

因此,它从小数形式的2020开始,减去12,并尝试减去09:开头的0告诉它以八进制来解释数字,但9不能以八进制数出现,因此出现了错误。

YYYY-MM-DD格式的日期可以作为字符串进行比较。使用

代码语言:javascript
运行
复制
[ "$dateFile" > "$NOW" ]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63987639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档