# let

简单的计算器，执行算术表达式。

## 概要

    let arg [arg ...]

## 主要用途

- 执行一个或多个算术表达式。

## 参数

arg：算术表达式

## 返回值

当`let`最后一个执行的表达式的计算结果为0时返回`1`，否则返回`0`。 当`let`执行的表达式的除数为0时，返回`1`并报错。

## 运算符优先级递减表

|运算符|描述| |:-------:|:-------:| |`id++, id--`|`变量后增量、变量后减量`| |`++id, --id`|`变量预增量、变量预减量`| |`-, +`|`正号、负号`| |`!, ~`|`逻辑否、按位取反`| |`**`|`幂运算`| |`*, /, %`|`乘法、除法、取余`| |`+, -`|`加法、减法`| |`<<, >>`|`按位左移、右移`| |`<=, >=, <, >`|`比较`| |`==, !=`|`等于、不等于`| |`&`|`按位与`| |`^`|`按位异或`| |`\|`|`按位或`| |`&&`|`逻辑与`| |`\|\|`|`逻辑或`| |`expr ? expr : expr`|`条件运算符（三元运算符）`| |`=, *=, /=, %=, +=, -=,`
`<<=, >>=, &=, ^=, \|=`|`赋值`|

## 例子

    # 尝试直接在终端中执行算术表达式（就像在python的IDLE）。
    3+4
    bash：3+4：command not found...
    # 换一种方式。
    3 + 4
    bash：3：command not found...
    # 看来不行。

    # let命令赋值。
    let a=3**4
    echo ${a}
    # 显示81。
    # ((...))和let命令等效。
    ((a=3**4))

    # let常用于变量赋值，而外部命令expr可直接返回表达式的值。
    let 3+4
    # 没有显示7。
    # 执行后显示7，注意空格。
    expr 3 + 4

    # 条件表达式。
    if ((8>4)); then
      echo '8 is greater than 4.'
    else
      echo 'error'
    fi
    # 注意空格。
    if [[ 12 -le 10 ]]; then
      echo 'error'
    else
      echo '12 is greater than 10.'
    fi

    # 可以通过declare命令设置整型属性的方法来进行算术运算。
    # local命令与此类似。

    # 没有指定整型属性，输出为字符串'a+b'。
    declare a=3 b=4 c
    c=a+b
    echo ${c}
    # 不过可以使用以下方式赋值。
    c=$((a+b))
    echo ${c}
    # 显示7

    # 设置了整型属性就可以直接加了。
    declare -i a=3 b=4 c
    c=a+b
    echo ${c}
    # 同上。
    declare -i a
    a=2*3
    echo ${a}
    # 显示6。

### 注意

1. 该命令是bash内建命令，相关的帮助信息请查看`help`命令。

2. 执行算术计算的命令除了`let`，还有外部命令`expr`、`bc`等。