Bash 12 - 08 值对于基础来说太大了(错误标记“08”)

Emb*_*rit 6 bash scripts

所以,我正在尝试计算12-08(not 12-8) 并得到以下错误:

let: 08: value too great for base (error token is "08")
Run Code Online (Sandbox Code Playgroud)

这是示例代码:

first=12
second=08
if [[ ($first > $second) ]]; then
    let fin=first-second
else
    let fin=second-first
fi
Run Code Online (Sandbox Code Playgroud)

PS对不起间距

hee*_*ayl 14

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

现在您有两个选项可以进行十进制计算:

  • @cat 它也用于 i) shebang 行 (`#!/bin/bash`); ii) [字符串操作](http://www.tldp.org/LDP/abs/html/string-manipulation.html) (`var="foo"; echo ${var#f}`); iii) `$#` 变量;iv) `!#` 变量和其他一些随处可见的情况:) 看看 `man bash | grep '#'`。 (2认同)