您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

let

概要

let arg [arg ...]

主要用途

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

    参数

    arg:算术表达式

    返回值

    let最后一个执行的表达式的计算结果为0时返回1,否则返回0

    let执行的表达式的除数为0时,返回1并报错。

    运算符优先级递减表

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

    <<=, >>=, &=, ^=, \</td>
    <td>=
    赋值

    例子

    尝试直接在终端中执行算术表达式(就像在python的IDLE)。

    3+4

    bash:3+4:command not found...

    换一种方式。

    3 + 4

    bash:3:command not found...

    看来不行。

    let命令赋值。

    let a=34

    echo ${a}

    显示81。

    ((...))和let命令等效。

    ((a=34))

    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命令。

  1. 执行算术计算的命令除了let,还有外部命令exprbc等。