💭
7月に動作していた処理が8月にエラー
TL;DR
0始まりの数字を10進数で解釈させたい場合は$((10#$val))
のように記載する。
経緯
date +%m
の結果は、8月の場合は'08'となる。これを先頭の0を取って比較したいため$(($val))
とやっていたところ、7月までは問題ないのだが8月になって以下のようなエラーが出る。
08: value too great for base (error token is "08")
bashでは一文字目が0の数字は8進数とみなされるため、08という表記はダメ、というエラー。
対応としては、$((10#$val))
のように変数の頭に'10#'をつけることで10進数で解釈させることができる。
同じようなことは過去してきたと思ったのだが、今回初めて遭遇してかなりびっくりした。
Discussion