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