一、运算符
1.基本语法
(1)“$((运算式))
”或“$[运算式]
”
(2)expr + , - , \*, /, %
加,减,乘,除,取余
注意:expr运算符间要有空格
2.案例实操:
(1)计算3+2的值
[atguigu@hadoop101 datas]$ expr 2 + 3
5
(2)计算3-2的值
[atguigu@hadoop101 datas]$ expr 3 - 2
1
(3)计算(2+3)*4
的值
(a)expr一步完成计算
[atguigu@hadoop101 datas]$ expr `expr 2 + 3` \* 4
20
(b)采用$[运算式]
方式
[atguigu@hadoop101 datas] S=$[(2+3)*4]
[atguigu@hadoop101 datas] echo $S
二、 条件判断
1.基本语法
[ condition ]
(注意condition前后要有空格)
注意:条件非空即为true,[ atguigu ]返回true,[] 返回false。
一般与流程控制中的if
等语句联合使用
2.常用判断条件
(1)两个整数之间比较
= 字符串比较
-lt
小于(less than) -le
小于等于(less equal)
-eq
等于(equal) -gt
大于(greater than)
-ge
大于等于(greater equal) -ne
不等于(Not equal)
(2)按照文件权限进行判断
-r
有读的权限(read) -w
有写的权限(write)
-x
有执行的权限(execute)
(3)按照文件类型进行判断
-f
文件存在并且是一个常规的文件(file)
-e
文件存在(existence) -d
文件存在并是一个目录(directory)
3.案例实操
(1)23是否大于等于22
[atguigu@hadoop101 datas]$ [ 23 -ge 22 ]
[atguigu@hadoop101 datas]$ echo $?
0
(2)helloworld.sh是否具有写权限
[atguigu@hadoop101 datas]$ [ -w helloworld.sh ]
[atguigu@hadoop101 datas]$ echo $?
0
(3)/home/atguigu/cls.txt目录中的文件是否存在
[atguigu@hadoop101 datas]$ [ -e /home/atguigu/cls.txt ]
[atguigu@hadoop101 datas]$ echo $?
1
(4)多条件判断(&& 表示前一条命令执行成功时,才执行后一条命令,|| 表示上一条命令执行失败后,才执行下一条命令)
[atguigu@hadoop101 ~]$ [ condition ] && echo OK || echo notok
OK
[atguigu@hadoop101 datas]$ [ condition ] && [ ] || echo notok
notok