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

一、算数运算

1. bash中的算术运算:

可用help let查看帮助

常见的算数运算符:

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

实现算术运算:

① let var=算术表达式

 图片1.png

 图片1.png

 图片1.png

 图片1.png

注:let运算只保留整数位

 图片1.png

 图片1.png

扫描二维码关注公众号,回复: 9331690 查看本文章

② var=$[算术表达式]

图片1.png 

其余算数表达式同理

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

图片1.png 

其余算数表达式同理

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

图片1.png 

其余算数表达式同理

⑤ declare –i var = 数值

图片1.png 

其余算数表达式同理

⑥ echo ‘算术表达式’ | bc

图片1.png 

其余算数表达式同理

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

图片1.png 

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

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

 图片1.png

二、赋值运算

1. 增强型赋值:

① +=

图片1.png 

② -=

图片1.png 

③ *=

图片1.png 

④ /=

图片1.png 

⑤ %=

图片1.png 

2. 自增,自减:

① ++

图片1.png 

② --

图片1.png 

三、逻辑运算

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

图片1.png 

3. 或(|

1 1 = 1

1 0 = 1

0 1 = 1

0 0 = 0

依然是上例,1224

12转换成二进制:01100

24转换成二进制:11000

或的结果是:11100

转换成十进制是:28

图片1.png 

4. 非(!)

! 1 = 0 ! true

! 0 = 1 ! false

5. 短路运算

① 短路与(&&

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

命令1 && 命令2

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

图片1.png 

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

命令1 && 命令2

命令1为真,执行命令2

图片1.png 

② 短路或(||

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

命令1 || 命令2

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

图片1.png 

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

命令1 || 命令2

命令1为假,执行命令2

图片1.png 

6. 异或(^

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

例如:12异或24

12转换成二进制:01100

24转换成二进制:11000

12异或的结果:10100

转换成十进制是:20

图片1.png 


猜你喜欢

转载自blog.51cto.com/14483057/2472912