1.基本语法
(1)“$((运算式))
”或“$[运算式]
”
(2)expr + , - , *, /, % 加,减,乘,除,取余
注意:expr运算符间要有空格
2.案例实操:
(1)计算3+2的值
[root@master datas]$ expr 2 + 3
5
(2)计算3-2的值
[root@master datas]$ expr 3 - 2
1
(3)计算(2+3)X 4的值
(a)expr一步完成计算
[root@master datas]$ expr `expr 2 + 3` \* 4 #这个小·是tab上面那个键,不是单引号
20
(b)采用$
[运算式]方式
[root@master datas]$ S=$[(2+3)*4]
[root@master datas]$ echo $S
20
1.基本语法
[ condition ](`注意condition前后要有空格`)
注意:条件非空即为true,[ atguigu ]返回true,[] 返回false。
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
[root@master datas]$ [ 23 -ge 22 ]
[root@master datas]$ echo $?
0
(2)helloworld.sh是否具有写权限
[root@master datas]$ [ -w helloworld.sh ]
[root@master datas]$ echo $?
0
(3)/home/atguigu/cls.txt目录中的文件是否存在
[root@master datas]$ [ -e /home/atguigu/cls.txt ]
[root@master datas]$ echo $?
1
(4)多条件判断(&& 表示前一条命令执行成功时,才执行后一条命令,|| 表示上一条命令执行失败后,才执行下一条命令)
[root@master datas]$ [ condition ] && echo OK || echo notok
OK
[root@master datas]$ [ condition ] && [ ] || echo notok
notok