Bash 12 – 08 值对于基数来说太大(错误标记“08”)

Bash 12 – 08 值对于基数来说太大(错误标记“08”)

因此,我尝试计算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

如果在数字前加上0bash则将该数字视为八进制。八进制以 8 为基数,数字范围从 0 到 7,08超出了八进制的范围。

现在您有两种方式来进行十进制计算:

  • 省略前面的 0:

    $ echo $(( 12 - 8 )) 
    4
    
  • 通过以下方式明确指出基数为十进制10#

    $ echo $(( 12 - 10#08 )) 
    4
    

相关内容