您的位置:首页 > 运维架构 > Shell

Shell:value too great for base

2015-07-08 09:49 971 查看
今天定时计划删除文件没执行成功,查看了下日志,发现报错为line 38 :08:value too great

for base (error token is "08")。

查看了下代码:

其它的忽略不计,重点看下38行

.............

if [ $[$(date +%d)-$keepTime] == 0 ]; then

..............

问题就出在这里,今天是7月8号,所以$(date +%d)变成了08,而0x对于shell来说,会解析成8进制,

08超过了8进制的表示范围,所以报错:shell value too great for base;

解决方案:

指定其为10进制即可,在结果前加上10#

..........

if [ $[10#$(date +%d)-$keepTime] == 0 ]; then

...........

执行shell,顺利执行结果!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: