1 | let
|
2 | ===
|
3 |
|
4 | 简单的计算器,执行算术表达式。
|
5 |
|
6 | ## 概要
|
7 |
|
8 | ```shell
|
9 | let arg [arg ...]
|
10 | ```
|
11 |
|
12 | ## 主要用途
|
13 |
|
14 | - 执行一个或多个算术表达式。
|
15 |
|
16 | ## 参数
|
17 |
|
18 | arg:算术表达式
|
19 |
|
20 | ## 返回值
|
21 |
|
22 | 当`let`最后一个执行的表达式的计算结果为0时返回`1`,否则返回`0`。
|
23 | 当`let`执行的表达式的除数为0时,返回`1`并报错。
|
24 |
|
25 | ## 运算符优先级递减表
|
26 |
|
27 | |**运算符**|**描述**|
|
28 | |:-------:|:-------:|
|
29 | |```id++, id--```|```变量后增量、变量后减量```|
|
30 | |```++id, --id```|```变量预增量、变量预减量```|
|
31 | |```-, +```|```正号、负号```|
|
32 | |```!, ~```|```逻辑否、按位取反```|
|
33 | |```**```|```幂运算```|
|
34 | |```*, /, %```|```乘法、除法、取余```|
|
35 | |```+, -```|```加法、减法```|
|
36 | |```<<, >>```|```按位左移、右移```|
|
37 | |```<=, >=, <, >```|```比较```|
|
38 | |```==, !=```|```等于、不等于```|
|
39 | |```&```|```按位与```|
|
40 | |```^```|```按位异或```|
|
41 | |```\|```|```按位或```|
|
42 | |```&&```|```逻辑与```|
|
43 | |```\|\|```|```逻辑或```|
|
44 | |```expr ? expr : expr```|```条件运算符(三元运算符)```|
|
45 | |```=, *=, /=, %=, +=, -=,```<br>```<<=, >>=, &=, ^=, \|=```|```赋值```|
|
46 |
|
47 |
|
48 | ## 例子
|
49 |
|
50 | ```shell
|
51 | # 尝试直接在终端中执行算术表达式(就像在python的IDLE)。
|
52 | 3+4
|
53 | bash:3+4:command not found...
|
54 | # 换一种方式。
|
55 | 3 + 4
|
56 | bash:3:command not found...
|
57 | # 看来不行。
|
58 | ```
|
59 |
|
60 | ```shell
|
61 | # let命令赋值。
|
62 | let a=3**4
|
63 | echo ${a}
|
64 | # 显示81。
|
65 | # ((...))和let命令等效。
|
66 | ((a=3**4))
|
67 | ```
|
68 |
|
69 | ```shell
|
70 | # let常用于变量赋值,而外部命令expr可直接返回表达式的值。
|
71 | let 3+4
|
72 | # 没有显示7。
|
73 | # 执行后显示7,注意空格。
|
74 | expr 3 + 4
|
75 | ```
|
76 |
|
77 | ```shell
|
78 | # 条件表达式。
|
79 | if ((8>4)); then
|
80 | echo '8 is greater than 4.'
|
81 | else
|
82 | echo 'error'
|
83 | fi
|
84 | # 注意空格。
|
85 | if [[ 12 -le 10 ]]; then
|
86 | echo 'error'
|
87 | else
|
88 | echo '12 is greater than 10.'
|
89 | fi
|
90 | ```
|
91 |
|
92 | ```shell
|
93 | # 可以通过declare命令设置整型属性的方法来进行算术运算。
|
94 | # local命令与此类似。
|
95 |
|
96 | # 没有指定整型属性,输出为字符串'a+b'。
|
97 | declare a=3 b=4 c
|
98 | c=a+b
|
99 | echo ${c}
|
100 | # 不过可以使用以下方式赋值。
|
101 | c=$((a+b))
|
102 | echo ${c}
|
103 | # 显示7
|
104 |
|
105 | # 设置了整型属性就可以直接加了。
|
106 | declare -i a=3 b=4 c
|
107 | c=a+b
|
108 | echo ${c}
|
109 | # 同上。
|
110 | declare -i a
|
111 | a=2*3
|
112 | echo ${a}
|
113 | # 显示6。
|
114 | ```
|
115 |
|
116 | ### 注意
|
117 |
|
118 | 1. 该命令是bash内建命令,相关的帮助信息请查看`help`命令。
|
119 |
|
120 | 2. 执行算术计算的命令除了`let`,还有外部命令`expr`、`bc`等。
|
121 |
|
122 |
|