#!/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来消除八进制错误。
发布于 2020-09-21 15:36:18
-gt
比较数字,这意味着在bash中是整数。Bash将这两个操作数解释为算术表达式,而您的操作数被解析为
10#2020 - 12 - 09
因此,它从小数形式的2020开始,减去12,并尝试减去09:开头的0告诉它以八进制来解释数字,但9不能以八进制数出现,因此出现了错误。
YYYY-MM-DD格式的日期可以作为字符串进行比较。使用
[ "$dateFile" > "$NOW" ]
https://stackoverflow.com/questions/63987639
复制相似问题