一、条件测试
test命令
测试表达式是否成立,若成立返回0(正常),否则返回其他数值(非零值都为异常)
语法:
格式1: test 条件表达式
格式2: [ 条件表达式 ]
文件测试
语法:[ 操作符 文件或目录 ]
常用的测试操作符
选项 | 说明 |
---|---|
-d | 测试是否为目录(Directory) |
-e | 测试目录或文件是否存在(Exist) |
-f | 测试是否为文件(File) |
-r | 测试当前用户是否有权限读取 (Read) |
-w | 测试当前用户是否有权限写入 (Write) |
-x | 测试当前用户是否有权限执行 (Excute)权限 |
整数值比较
语法:[ 整数1 操作符 整数2 ]
常用的测试操作符
选项(只能比较整数值) | 符号 | 说明 |
---|---|---|
-eq | == | 等于(Equal) |
-ne | != | 不等于(Not Equal) |
-gt | > | 大于 (Greater Than) |
-lt | < | 小于(Lesser Than) |
-le | <= | 小于或等于 (Lesser or Equal) |
-ge | >= | 大于或等于(Greater or Equal) |
逻辑测试
语法:
格式1:[ 表达式1 ] 操作符 [ 表达式2 ]…
格式2:命令1 操作符 命令2…
常用的测试操作符
操作符 | 符号 | 说明 |
---|---|---|
-a 或 && | 逻辑与 | “而且” |
-o 或 丨丨 | 逻辑或 | “或者” |
! | 逻辑否 | “非” |
二、if语句
单分支结构
语法:
if 条件测试操作
then 命令序列
fi
双分支结构
语法:
if 条件测试操作
then 命令序列1
else 命令序列2
fi
多分支结构
语法:
if 条件测试操作1
then 命令序列1
elif 条件测试操
then 命令序列2
else 命令序列3
fi
实验操作
1,#提示用户输入内容,使用if 语句判断输入的内容是否为整数。
2判断输入内容是整数还是奇数
3、提示用户输入100米赛跑的秒数,要求判断秒数大于0且小于等于10秒的进入选拔赛,大于10秒的都淘汰,如果输入其它字符则提示重新输入;进入选拔赛的成员再进一步判断男女性别,男生进男生组,女生进女生组,如果输入错误请提示错误
三、case分支语句
case多分支结构
语法:
case 变量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
......
*)
默认命令序列
esac
case实操
示例:用case语句在/etc/init.d/目录中写一个firewalld脚本,并加入到系统服务管理中使能够使用 service firewalld start|stop|restart|status 来管理firewalld服务,要求如果命令选项不对,则提示 “用法: $0 {start|stop|status|restart}”。