因此,我尝试计算12-08
(不是12-8
)并得到以下错误:
let: 08: value too great for base (error token is "08")
以下是示例代码:
first=12
second=08
if [[ ($first > $second) ]]; then
let fin=first-second
else
let fin=second-first
fi
PS 抱歉,间距不对
答案1
如果在数字前加上0
,bash
则将该数字视为八进制。八进制以 8 为基数,数字范围从 0 到 7,08
超出了八进制的范围。
现在您有两种方式来进行十进制计算:
省略前面的 0:
$ echo $(( 12 - 8 )) 4
通过以下方式明确指出基数为十进制
10#
:$ echo $(( 12 - 10#08 )) 4