算术表达式
算术表达式语法:((...)),在 Bash 中,该表达式只能进行整数运算,返回的结果也是整数。
- 表达式不会返回运算结果的的值,如需取表达式的运算结果,需使用语法:
$((...)) 
1  | ((1+2))  | 
((...))语法支持的运算符如下:
1  | + // 加  | 
$(())内部可以嵌套,也可以增加括号改变运算顺序,((...))内部不能嵌套
1  | sum=$(((1+2)*3+4))  | 
$(())内部的变量前不需要加$,内部的字符串会当作变量解析
1  | varname=$sum  | 
- 旧的语法: 
$[...] 
数值进制
Bash 中数字默认为是十进制,可以使用特定语法表示其它进制:
num: 十进制0num: 八进制0xnum: 十六进制base#num: 任意指定进制, base 表示进制的数,例如 2进制:2#101
位运算
$((...)) 支持二进制位运算, ((...)) 也同样支持:
<<: 位左移>>:位右移&: 与 运算|: 或 运算~: 否 运算^:异或 运算
逻辑运算
$((...)), ((...)) 支持以下的逻辑运算符,逻辑运算 true 返回 1, false 返回 0:
<: 小于>: 大于<=: 小于等于>=: 大于等于==: 等于!=: 不等于&&: 逻辑与||: 逻辑或!: 逻辑否expr1? expr2 : expr3: 三元运算
赋值运算
((...)), $((...))中支持的赋值运算:+=,  -=,  *=, /=, %=, <<=, >>=, &=, |=, ^=.
求值运算
$((...))中的运算可以使用逗号 , 隔开,这个逗号叫做求值运算符,使用求值运算符分隔的运算,会先顺序执行,然后返回最后一个运算的结果。
1  | echo $((1 + 2, 3 + 4)) // 7  | 
expr 命令
使用 expr 命令可以直接进行整数算术运算,注意算术中数字与算术符号要用空格隔开:
1  | expr 1 + 2  | 
let 命令
let 命令用于将算术运算结果赋值给一个变量:
1  | let a=1+2  |