by shigemk2

当面は技術的なことしか書かない

シェルで整数値を扱う時は8進数に注意する

stack of tips 200611

ゼロ(0)で始まる数値は、8進数扱いになる(bash、shなど)。
ただし8進数では'08'という値を表現できない。

echo $(( 88 ))
echo $(( 017 ))
echo $(( 01111 ))
echo $(( 08 ))

bash

88
15
585
qr_6920kMW.sh: line 4: 08: value too great for base (error token is "08")

大きすぎて計算できません、とな。

故に、10進数として計算したほうがよいそうな。

ちなみに、

zsh

88
17
1111
8

普通に10進数です。