Bash運(yùn)算符
一倡勇、數(shù)值運(yùn)算
1焙蚓、declare聲明變量類型
[root@localhost ~]# declare [+/-][選項(xiàng)] 變量名
選項(xiàng):
-: 給變量設(shè)定類型屬性
+: 取消變量的類型屬性
-i: 將變量聲明為整數(shù)型(integer)
-x: 將變量聲明為環(huán)境變量
-p: 顯示指定變量的被聲明的類型
2痕寓、數(shù)值運(yùn)算
方法1
用declare將變量聲明為整數(shù)型進(jìn)行運(yùn)算
[root@localhosthome]#a=8
You have new mail in /var/spool/mail/root
[root@localhosthome]#b=24
[root@localhosthome]#declare -i c=$a+$b
[root@localhosthome]#echo $c
32
方法2
用expr或let數(shù)值運(yùn)算工具進(jìn)行運(yùn)算
[root@localhosthome]#d=$(expr $a + $b)
[root@localhosthome]#echo $d
32
注意“+”號(hào)左右兩側(cè)必須有空格
[root@localhosthome]#let "e=8+24"
[root@localhosthome]#echo $e
32
方法3
用“$((運(yùn)算式))”或“$[運(yùn)算式]”進(jìn)行運(yùn)算
[root@localhosthome]#f=$(($a+$b))
[root@localhosthome]#echo $f
32
[root@localhosthome]#g=$[$a+$b]
[root@localhosthome]#echo $g
32
二寝受、運(yùn)算符
此處是數(shù)字越小優(yōu)先級(jí)越高
測(cè)試
[root@localhosthome]#a=$(((8+24)*3/2))
#雖然乘和除的優(yōu)先級(jí)高于加偎窘,但是通過(guò)小括號(hào)可以調(diào)整運(yùn)算優(yōu)先級(jí)乌助。
[root@localhosthome]#echo $a
48
[root@localhosthome]#b=$((21%5))
#21不能被5整除,余數(shù)是1陌知。
[root@localhosthome]#echo $b
1
[root@localhosthome]#c=$((1&&0))
#邏輯與運(yùn)算只有與的兩邊都是1他托,與的結(jié)果才是1,否則與的結(jié)果是0仆葡。
[root@localhosthome]#echo $c
0
[root@localhosthome]#d=$((1&&1))
[root@localhosthome]#echo $d
1
三赏参、變量測(cè)試與內(nèi)容替換
測(cè)試
[root@localhosthome]#unset y
[root@localhosthome]#x=${y-new}
[root@localhosthome]#echo $x
new
[root@localhosthome]#
[root@localhosthome]#y=""
You have new mail in /var/spool/mail/root
[root@localhosthome]#x=${y-new}
[root@localhosthome]#echo $x
[root@localhosthome]#
[root@localhosthome]#y=a
[root@localhosthome]#x=${y-new}
[root@localhosthome]#echo $x
a
[root@localhosthome]#
[root@localhosthome]#
[root@localhosthome]#unset y
[root@localhosthome]#x=${y:-new}
[root@localhosthome]#echo $x
new
[root@localhosthome]#y=""
[root@localhosthome]#x=${y:-new}
[root@localhosthome]#echo $x
new
其他的置換方式大同小異,在此不一 一贅述沿盅。