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