一、算数运算

1. bash中的算术运算:

可用help let查看帮助

常见的算数运算符:

+(加), -(减), *(乘), /(除), %取模(取余), **(乘方)

实现算术运算:

① let var=算术表达式

 SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算

 SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_02

 SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_03

 SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_04

注:let运算只保留整数位

 SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_05

 SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_06

② var=$[算术表达式]

SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_07 

其余算数表达式同理

③ var=$((算术表达式))

SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_08 

其余算数表达式同理

④  var=$(expr arg1 arg2 arg3 ...)

SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_09 

其余算数表达式同理

⑤ declare –i var = 数值

SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_10 

其余算数表达式同理

⑥ echo ‘算术表达式’ | bc

SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_11 

其余算数表达式同理

2. 乘法符号有些场景中需要转义,如*

SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_12 

3. bash有内建的随机数生成器:$RANDOM0-32767

例如:取出0-49之间的随机数

 SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_13

二、赋值运算

1. 增强型赋值:

① +=

SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_14 

② -=

SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_15 

③ *=

SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_16 

④ /=

SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_17 

⑤ %=

SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_18 

2. 自增,自减:

① ++

SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_19 

② --

SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_20 

三、逻辑运算

1. true, false

测试命令:

 test EXPRESSION

 [ EXPRESSION ]

[[ EXPRESSION ]]

注意:EXPRESSION前后必须有空白字符

返回结果:

1true0false

2. 与(&

1 1 = 1

1 0 = 0

0 1 = 0

0 0 = 0

例如:1224

12转换成二进制:01100

24转换成二进制:11000

与的结果是:01000

转换成十进制是:8

SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_21 

3. 或(|

1 1 = 1

1 0 = 1

0 1 = 1

0 0 = 0

依然是上例,1224

12转换成二进制:01100

24转换成二进制:11000

或的结果是:11100

转换成十进制是:28

SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_22 

4. 非(!)

! 1 = 0 ! true

! 0 = 1 ! false

5. 短路运算

① 短路与(&&

第一个为0,结果必定为0即:

命令1 && 命令2

命令1为假,不执行命令2

SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_23 

第一个为1,第二个必须要参与运算

命令1 && 命令2

命令1为真,执行命令2

SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_24 

② 短路或(||

第一个为1,结果必定为1

命令1 || 命令2

命令1为真,不执行命令2

SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_25 

第一个为0,第二个必须要参与运算

命令1 || 命令2

命令1为假,执行命令2

SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_26 

6. 异或(^

异或的两个值,相同为假0,不同为真1

例如:12异或24

12转换成二进制:01100

24转换成二进制:11000

12异或的结果:10100

转换成十进制是:20

SHELL脚本中运算符、逻辑运算以及用法_shell脚本运算_27