算术运算

shell支持算术运算,仅支持整数运算

+(加法) -(减法) *(乘法) /(除法,整除) %(求余)  **(乘方)

乘法因与通配符相同,在部分特殊场景需要进行转义

算术运算方式:

let var=算术表达式   ((var=算术表达式)) var=$[算术表达式]  var=$((算术表达式))

var=$(expr arg1 arg2 arg3 ...)   declare -i var=数字   echo '算术表达式’ | bc

21、Shell脚本编程-运算_显示格式

21、Shell脚本编程-运算_算术表达式_02

随机数变量

$RANDOM  取值范围 0-32767

21、Shell脚本编程-运算_算术表达式_03

颜色函数

                    格式: echo -e "\033[显示格式;字背景颜色;字体颜色m文本\033[0m" 或者 echo "\e[显示格式;字背景颜色;字体颜色m文本\e[0m"

显示格式:0(默认值)、1(粗体/高亮)、4(下划线)、5(闪烁)、7(反显,翻转前景色和背景色)


增强型赋值:

 i +=10 同于 i=i+10

i -=10 同于 i=i-10

*= /= %=

++i ,i++ 同于i=i+1

--i i-- 同于i=i-1

21、Shell脚本编程-运算_算术运算_04

21、Shell脚本编程-运算_算术表达式_05

逻辑运算(转换为二进制计算)

true (1)  false(0)

逻辑与(&):是且的关系,两个都为真才是真,和0相与结果为0

1 & 1=1 0&1=0 0&0=0 1&0=0

逻辑或(|):是或者的关系,任何一个值为真都为真,和1或结果为1

1 |1 =1 1|0=1  0|0=0  0 |1=1

逻辑非(!):取反

!1=0  !0=1

逻辑异或(^0):异或两个值,相同为假(0),不同为真(1)。两个数字x,y异或得到结果为z,z再和x异或则得到y,与y异或得到x

1^1=0  0^0=0 1^0=1 0^1=1

x^y=z   z^x=y 计算方法 x^y^x得到0^y=y 任何值和0异或得到为本身值

21、Shell脚本编程-运算_算术表达式_06

使用异或方式,对调值

短路运算

短路与(&&): command1 &&command2 如果command1结果为真(1),则command2必须执行,才能得到最终结果

                                         如果command1结果为假(0),则command2不需要执行,因为最终结果已为0

与逻辑&的异同:相同点,得到的结果都是布尔型,相同;不同点:逻辑与两边都需要执行,短路与不需要

短路或 (||):command1 &&command2 如果command1结果为真(1),则command2无需执行,因为最终结果已为1

                                                               如果command1结果为假(0),则command2必须执行,才能能得到最终结果

与逻辑|的异同:相同点,得到的结果都是布尔型,相同;不同点:逻辑与两边都需要执行,短路或不需要