shell脚本报错 value too great for base

此错误是shell脚本在计算以0开头的数字时,默认以8进制进行计算,导致在计算08时超过了8进制的范围,报此错误。

shell脚本代码如下:

#!/bin/bash
a=00
for i in {0..11}
do 
   a=$[$a+1]
   if [ $a -lt 10 ]
   then
      a="0"$a
   fi
   echo "$a"
done

运行之后的结果:

01
02
03
04
05
06
07
08
t.sh: line 5: 08: value too great for base (error token is "08")

解决方法:使用10#将该变量声明为10进制。

 如下代码即可成功运行。

a=00
for i in {0..11}
do 
   a=$[10#$a+1]
   if [ $a -lt 10 ]
   then
      a="0"$a
   fi
   echo "$a"
done

 

posted @ 2018-08-29 16:11  葬瞳飘血  阅读(3364)  评论(0编辑  收藏  举报