広告
広告

$(( ))を使っていて”value too great for base”エラーが出る

カテゴリ:linux

これは 先頭が 0 で始まる数値が8進数と解釈される ことが原因で起こる。たとえば 09 はエラーになる。

$ echo $((09))

対処法

expr を使う

$ echo `expr 09 + 0`

10# を使う

10# を数値の前につけると 10 進数と解釈させられる。

$ echo $((10#09)) # 9 が表示される

変数を使う場合は $ も必要になる。

$ num=09

$ echo $((10#$num))


広告
広告