运算符
-
基本语法:
$((运算式))
或$[运算式]
-
expr
+ , - , \*, /, % 加,减,乘,除
,取余,expr运算符间要有空格 -
应用案例:
- 计算3+3
[root@centOS bin]# expr 2 + 3 5
- 计算3-2的值
[root@centOS bin]# expr 3-2 1
- 计算(2+3)* 4 的值
[root@centOS bin]# expr `expr 2+3` \ *4 20 ``` 4. 采用$[运算式]方式 ```c [root@centOS bin]# S=$[(2+3)*4] [root@centOS bin]# echo $S 20 ```
shell条件判断
- 基本语法:
[ condition ]
注意:condition前后要有空格 - 条件非空即为true,[ ryx ] 返回true ,[] 返回false
- 常用的判断条件
=
字符串之间比较- 两个整数之间比较
-lt
小于(less than)-le
小于等于(less equal)-eq
等于(equal)-gt
大于(greater than)-ge
大于等于(greater equal)-ne
不等于(Not equal)
- 按照文件权限进行判断
- -r 有读的权限
- -w 有写的权限
- -x 有执行的权限
- 按照文件类型进行判断
- -f 文件存在并且式一个常规文件(file)
- -e 文件存在(existence)
- -d 文件存在并且式一个目录(directory)
- 判断23是否大于等于22
[root@centOS bin]# [ 23 -ge 22 ] [root@centOS bin]# echo $? 0 ```
- ryx.sh是否具有写的权限
[root@CentOS bin]# [ -w ryx.sh ]
[root@CentOS bin]# echo $?
0
[root@CentOS bin]#
- /home/bin/ryx/sh 目录是否存在
[root@CentOS bin]# [ -e /home/bin/ryx.sh ]
[root@CentOS bin]# echo $?
1
[root@CentOS bin]#
- 多条件判断(&& 表示前一条命令执行成功时才执行后一条命令,|| 表示上一条命令执行失败后,才执行下一条命令)
[root@CentOS bin]# [ condition ] && echo OK || echo notok
OK
[root@CentOS bin]# [ condition ] && [ ] || echo notok
notok
shell流程控制
- 基本语法:
if [ 条件判断式 ];then
程序
fi
或者
if [ 条件判断式 ]
then
程序
fi
- [ 条件判断式 ],中括号和条件判断式之间必须有空格
- if 后要有空格