錯誤描述:((: 08: value too great for base (error token is “08”)

編寫指令碼建立給定字首的31個目錄。程式的目的是建立31個目錄,但是建立到第8個時出現了錯誤,錯誤描述如上。推測提示的含義是:系統將08看做八進位制資料了,08對於八進位制資料來說又是不存在的(有待證實)。

dirname="201612"
for((i=1;i<=31;i++))
do
   if [ $i -lt 10 ]
     then
     i=0$i
   fi
   dirname=${dirname}${i}
   mkdir $dirname
   dirname="201612"
done

將上述程式改為以下程式則能正常執行。

dirname="201612"
for i in {1..31}
do
   if [ $i -lt 10 ]
     then
     i=0$i
   fi
   dirname=${dirname}${i}
   mkdir $dirname
   dirname="201612"
done