flat7th

memo/20231221

created 2023-12-21 modified 2023-12-21 

bashの数値計算でゼロがアタマに付いていると8進数になる件




bash の
$(( 20 + 1 )) で計算ができて expr 20 + 1 コマンドとだいたい同じだが、
アタマにゼロが付いていると、8進数として解釈されて、意図した結果とは異なってしまう。

[keizo@fedora _KNOW-HOW]$ echo $(( 020 + 1 ))
17

expr は微妙に違うらしい。

[keizo@fedora _KNOW-HOW]$ expr 020 + 1
21

アタマに 基数# をつけて 10#020 とすれば、10進数の20、として認識される。

[keizo@fedora _KNOW-HOW]$ echo $(( 10#020 + 1 ))
21






* 日々のメモ