算术运算
shell支持算术运算,仅支持整数运算
+(加法) -(减法) *(乘法) /(除法,整除) %(求余) **(乘方)
乘法因与通配符相同,在部分特殊场景需要进行转义
算术运算方式:
let var=算术表达式 ((var=算术表达式)) var=$[算术表达式] var=$((算术表达式))
var=$(expr arg1 arg2 arg3 ...) declare -i var=数字 echo '算术表达式’ | bc
随机数变量
$RANDOM 取值范围 0-32767
颜色函数
格式: 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
逻辑运算(转换为二进制计算)
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异或得到为本身值
使用异或方式,对调值
短路运算
短路与(&&): command1 &&command2 如果command1结果为真(1),则command2必须执行,才能得到最终结果
如果command1结果为假(0),则command2不需要执行,因为最终结果已为0
与逻辑&的异同:相同点,得到的结果都是布尔型,相同;不同点:逻辑与两边都需要执行,短路与不需要
短路或 (||):command1 &&command2 如果command1结果为真(1),则command2无需执行,因为最终结果已为1
如果command1结果为假(0),则command2必须执行,才能能得到最终结果
与逻辑|的异同:相同点,得到的结果都是布尔型,相同;不同点:逻辑与两边都需要执行,短路或不需要