Bash运算符
一、数值运算
1、declare声明变量类型
[root@localhost ~]# declare [+/-][选项] 变量名
选项:
-: 给变量设定类型属性
+: 取消变量的类型属性
-i: 将变量声明为整数型(integer)
-x: 将变量声明为环境变量
-p: 显示指定变量的被声明的类型
2、数值运算
方法1
用declare将变量声明为整数型进行运算
[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数值运算工具进行运算
[root@localhosthome]#d=$(expr $a + $b)
[root@localhosthome]#echo $d
32
注意“+”号左右两侧必须有空格
[root@localhosthome]#let "e=8+24"
[root@localhosthome]#echo $e
32
方法3
用“$((运算式))”或“$[运算式]”进行运算
[root@localhosthome]#f=$(($a+$b))
[root@localhosthome]#echo $f
32
[root@localhosthome]#g=$[$a+$b]
[root@localhosthome]#echo $g
32
二、运算符
此处是数字越小优先级越高
测试
[root@localhosthome]#a=$(((8+24)*3/2))
#虽然乘和除的优先级高于加,但是通过小括号可以调整运算优先级。
[root@localhosthome]#echo $a
48
[root@localhosthome]#b=$((21%5))
#21不能被5整除,余数是1。
[root@localhosthome]#echo $b
1
[root@localhosthome]#c=$((1&&0))
#逻辑与运算只有与的两边都是1,与的结果才是1,否则与的结果是0。
[root@localhosthome]#echo $c
0
[root@localhosthome]#d=$((1&&1))
[root@localhosthome]#echo $d
1
三、变量测试与内容替换
测试
[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
其他的置换方式大同小异,在此不一 一赘述。