0で始まる数字がなぜこのような興味深い動作を生成するのかを説明できる人はいますか?
#!/bin/bash
NUM=016
SUM=$((NUM + 1))
echo "$NUM + 1 = $SUM"
以下を印刷します。
016+1=15
ベストアンサー1
誤解は、この数字があなたの期待を表していないということです。
先行0は8進数を表します。016
つまりと同じです8#16
。先行ゼロを維持するにはが必要です10#016
。
> num=016
> echo $((num))
14
> echo $((10#$num))
16