linux shell let

# let --help

let: let arg [arg ...]

        id++, id--      variable post-increment, post-decrement
        ++id, --id      variable pre-increment, pre-decrement
        -, +            unary minus, plus
        !, ~            logical and bitwise negation
        **              exponentiation
        *, /, %         multiplication, division, remainder
        +, -            addition, subtraction
        <<, >>          left and right bitwise shifts
        <=, >=, <, >    comparison
        ==, !=          equality, inequality
        &               bitwise AND
        ^               bitwise XOR
        |               bitwise OR
        &&              logical AND
        ||              logical OR
        expr ? expr : expr
                        conditional operator
        =, *=, /=, %=,
        +=, -=, <<=, >>=,
        &=, ^=, |=      assignment

在 Shell 脚本中,let 命令用于执行算术运算。它可以进行加、减、乘、除等基本运算以及位运算、比较运算等

注意事项:
变量不需要$符号: 在let中操作变量时,不需要在变量名前加$符号。
双引号: 虽然let可以不使用引号,但为了避免某些情况下的语法问题,建议将整个表达式放在双引号中

1.基本算术运算用法范例:

root@test:~# a=10
root@test:~# b=2
root@test:~# let "c=a+b"
root@test:~# echo $c
12

2.位移运算

root@test:~# let "c = 5 << 2"
root@test:~# echo $c
20

即5左移2位,相当于 5 * 2 ** 2
或者说二进制的 101 左移两位,用0补全变成 10100 ,即20

3.复合赋值运算

root@test:~# let "c = 20"
root@test:~# let "c += 10"
root@test:~# echo $c           
30
root@test:~# let "c -= 20"
root@test:~# echo $c
10
root@test:~# let "c *= 2"
root@test:~# echo $c
20
root@test:~# let "c /= 2"
root@test:~# echo $c
10
root@test:~# let "c %= 3"
root@test:~# echo $c
1

4.比较运算等

root@test:~# let "d = (5 > 3)"
root@test:~# echo $d
1

即先判断括号内,成立则值为 1 ,不成立为 0

5.条件运算符

root@test:~# let "e = (3 < 5) ? 10 : 20"
root@test:~# echo $e
10
root@test:~# let "e = (6 < 5) ? 10 : 20"
root@test:~# echo $e
20

即先判断括号内的条件
条件为真则e取第一个值 10
条件为假则e取第二个值 20
6.逻辑运算

root@test:~# let "f = (1 && 0)"
root@test:~# echo $f
0

输出为0,因为逻辑与运算中有一个0,即假
逻辑运算符:

&               bitwise AND		与
^               bitwise XOR		异或		
|               bitwise OR		或
&&              logical AND		与
||              logical OR		或
# 真  1
# 假  0
# 与运算,全为真即为真
# 或运算 ,有一个为真即为真
# 异或,一真一假为真,相同为假

你可能感兴趣的:(Linux系统,Shell,linux,服务器,运维)