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

let

概要

shell
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>=
    赋值

    例子

    shell
    <h1>尝试直接在终端中执行算术表达式(就像在python的IDLE)。</h1>
    3+4
    bash:3+4:command not found...
    <h1>换一种方式。</h1>
    3 + 4
    bash:3:command not found...
    <h1>看来不行。</h1>
    
    shell
    <h1>let命令赋值。</h1>
    let a=3<strong>4
    echo ${a}
    <h1>显示81。</h1>
    <h1>((...))和let命令等效。</h1>
    ((a=3</strong>4))
    
    shell
    <h1>let常用于变量赋值,而外部命令expr可直接返回表达式的值。</h1>
    let 3+4
    <h1>没有显示7。</h1>
    <h1>执行后显示7,注意空格。</h1>
    expr 3 + 4
    
    shell
    <h1>条件表达式。</h1>
    if ((8>4)); then
      echo '8 is greater than 4.'
    else
      echo 'error'
    fi
    <h1>注意空格。</h1>
    if [[ 12 -le 10 ]]; then
      echo 'error'
    else
      echo '12 is greater than 10.'
    fi
    
    shell
    <h1>可以通过declare命令设置整型属性的方法来进行算术运算。</h1>
    <h1>local命令与此类似。</h1>
    
    <h1>没有指定整型属性,输出为字符串'a+b'。</h1>
    declare a=3 b=4 c
    c=a+b
    echo ${c}
    <h1>不过可以使用以下方式赋值。</h1>
    c=$((a+b))
    echo ${c}
    <h1>显示7</h1>
    
    <h1>设置了整型属性就可以直接加了。</h1>
    declare -i a=3 b=4 c
    c=a+b
    echo ${c}
    <h1>同上。</h1>
    declare -i a
    a=2*3
    echo ${a}
    <h1>显示6。</h1>
    

    注意

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

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