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
原文地址:https://www.cnblogs.com/ZTPX/p/9555030.html