このような負の数を取得するbashを使用してスクリプトを作成しています
-001 , -002 , -003 , ........................., -008 , -009 , -010 , -011 , -012 . ....
それらを正の数に変更する必要があるため、-1 を掛けることにしました。それで
$ val=$(( -1*-001 ))
$ echo $val
$ 1
$ val=$(( -1*-002 ))
$ echo $val
$ 2
結果は -007 までは問題ありませんが、-008 と -009 を乗算すると、次のようにエラーが発生します。
$ val=$(( -1*-008 ))
bash: -1*-008: value too great for base (error token is "008")
$ val=$(( -1*-009 ))
bash: -1*-009: value too great for base (error token is "009")
もう1つの奇妙な動作は、-010、-011、-012などで乗算すると...以下のような異常な結果が発生することです
$ val=$(( -1*-010 ))
$ echo $val
$ 8
$ val=$(( -1*-011 ))
$ echo $val
$ 9
$ val=$(( -1*-012 ))
$ echo $val
$ 10
$ val=$(( -1*-013 ))
$ echo $val
$ 11
and so on............
なぜこれが起こるのですか?