目录
一、条件测试
1.1 test命令
测试表达式是否成立,若成立返回0,否则返回其他数值
格式1:test 条件表达式
格式2:[ 条件表达式 ]
1.2 文件测试
[ 操作符 文件或目录 ]
1.2-1 常用的测试操作符
- -d:测试是否为目录(Directory)
- -e:测试目录或文件是否存在(Exist)
- -f:测试是否为文件(File)
- -r:测试当前用户是否有读写权限(Read)
- -w:测试当前用户是否有权限写入(Write)
- -x:测试当前用户是否有权限执行(eXcute)
- -b:测试是否为设备文件
- -c:测试是否为字符设备文件
- -s:测试存在且文件大小为空
- -L:测试是否为链接文件
例:


(执行测试完之后,通过预定义变量$?可以获得测试命令的返回状态值,从而判断该条件是否成立)
1.3 整数值比较
[ 整数1 操作符 整数2 ]
1.3-1 常用的测试操作符
- -eq:等于(Equal)
- -ne:不等于(Not Equal)
- -gt:大于(Greater Than)
- -lt:小于(Lesser Than)
- -le:小于或等于(Lesser or Equal)
- -ge:大于或等于(Greater or Equal)
例:



下面echo $?回报为0是条件不满足,此时是小于1000M
1.4 字符串比较
格式1:【字符串1 = 字符串2】/【字符串1 != 字符串2】
格式2:【-z 字符串】
1.4-1 常用的测试操作符
=:字符串内容相同
!=:字符串内容不同,!号表示取反的意思
-z:字符串内容为空
例:


1.5 逻辑测试
格式1:【表达式1】操作符【表达式2】
格式2:命令1 操作符 命令2
1.5-1 常用的测试操作符
- -a或&&:逻辑与,“而且”的意思
- -o或||:逻辑或,“或者”的意思
- !:逻辑否
例:



2、if语句的结构
2.1 单分支结构

例: 

例2:
此时我们再运行一下脚本

若果我们想更友好的显示结果信息,我们可以在脚本中重定向输出,把不想显示的输出到/dev/null中


例3:

注:
单个括号([]):必须要有空格,两个字符或数字之间的比较左右必须有空格
判断条件:test一种形式,[] 中间只能使用 = 和 != 比较字符串,如果使用<、>需要进行转义\.
中间如果比较数字要用 -lt 等符号,不能使用\<比较数字,它会当成字符串处理
两个括号([[]]):用于处理逻辑命令,也可以处理字符串是否相等,并且使用<、>不用转义符
2.2 双分支结构


我们关闭网址的主机

例2:


例3:检测网站服务是否存在

2.3 多分支结构


例2:

2.4 嵌套if语句

我们移除httpd服务再启动脚本


2.5 case语句结构
2.5-1 case多分支结构

2.5-2 case多分支语句

编写apache启动服务脚本


本章总结
1、条件测试的语法:
文本测试、整数值比较、字符串比较、逻辑测试
2、if条件语句的语法
单分支、双分支、多分支、
3、case多分支语句的语法
版权声明:本文为SmileLife_原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。