Shell脚本编程-运算
source link: https://blog.51cto.com/gavenlee/5524604
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Shell脚本编程-运算
原创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必须执行,才能能得到最终结果
与逻辑|的异同:相同点,得到的结果都是布尔型,相同;不同点:逻辑与两边都需要执行,短路或不需要
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK