算术运算

$(())

  1. # 直接运行
  2. echo $((5+3)) # 输出8
  3. # 变量
  4. a=5
  5. echo $((a + 3)) # 输出8
  6. #前自增
  7. $((++i))
  8. #后自增
  9. $((i++))
  10. #前自减
  11. $((--i))
  12. #后自减
  13. $((i--))

$[]

# 变量
a=5
echo $[a + 3] # 输出8

#前自增
$[++i]

#后自增
$[i++]

#前自减
$[--i]

#后自减
$[i--]

expr

+号两边要有空格

echo `expr 3 + 5` # 输出8

bc

# 浮点类型参与运算
➜  Desktop echo "5+1.555" | bc
6.555

# 保留2位有效数值
➜  Desktop echo "scale=2;5/3" | bc
1.66

# 比较大小,0表示false,1表示true
➜  Desktop echo "2.5 > 3.5" | bc
0
➜  Desktop echo "2.5 < 3.5" | bc
1

let (+=前后没有空格)

i=5
let i+=2

# echo $i => 5

逻辑运算

&&: 符号左边的是true,才会执行符号右边的内容,否则不执行右边的表达式

➜  Desktop true && echo true
true

||: 符号左边的是false,才会执行符号右边的内容,否则不执行右边的表达式

➜  Desktop false || echo false
false

!: 取反

!false <==> true

随机数(RANDOM)

每次被调用时,随机生成0~32767之间的一个整数

用法

➜  Desktop echo $RANDOM
6366

利用取余运算获取某个范围的数值

# 取0-9
➜  Desktop echo $[RANDOM%10]
6

# 取0-99
➜  Desktop echo $[RANDOM%100]
64

# 取0-999
➜  Desktop echo $[RANDOM%1000]
708

# 取1-1000
➜  Desktop echo $[RANDOM%1000+1]
130

扩大范围

echo $[RANDOM*RANDOM]

输出等差序列

默认从整数1开始
缺省的增量步长也是1

用法1:seq 末数

➜  Desktop seq 5
1
2
3
4
5

用法2:seq 首数 末数

➜  Desktop seq 2 5
2
3
4
5

用法3:seq 首数 步长 末数

➜  Desktop seq 2 2 5
2
4

用法4:默认的分隔符是换行符,可以使用 -s 指定换行符

➜  Desktop seq -s ' ' 5
1 2 3 4 5

用法5:使用 -w 等宽显示数值,不足前置补0

➜  Desktop seq -s' ' -w 15
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15

参考:
https://www.cnblogs.com/newcaoguo/p/5980913.html
https://blog.csdn.net/weixin_30790841/article/details/98932518