目录
一:条件测试
1.文件测试
2.常见的测试操作符
3.整数值比较
4.字符串比较
5. 逻辑测试
二:if语句
1.单分支结构
2.单分支结构实例
3.双分支结构
4.双分支结构实例
5.多分支结构
6.多分支机构实例
7.嵌套if语句实例
三:case语句
1.case多分支结构
2.case多分支结构实例
总结:
一:条件测试
1.文件测试
测试表达式是否成立,若成立返回0,否则返回其他数值
格式1:test 条件表达式
格式2:[ 条件表达式 ]
2.常见的测试操作符
操作符 | 描述 |
---|---|
-d | 判断是否为目录 |
-f | 判断是否为文件 |
-e | 判断是否为目录或文件 |
-r | 判断是否有读权限 |
-w | 判断是否有写权限 |
-x | 判断是否有执行权限 |
-L | 判断是否为链接文件 |
-b | 判断是否为设备文件 |
-c | 判断是否为字符设备 |
-s | 判断文件大小是否为空 |
注:中括号内两端必须要有空格
3.整数值比较
[ 整数1 操作符 整数2 ]
常用的测试操作符
操作符 | 描述 |
---|---|
-eq(equal) | 等于 |
-nq (not equal) | 不等于 |
-lt (lesser than) | 小于 |
-le (lesser or equal) | 小于或等于 |
-gt (greater than) | 大于 |
-ge (greater or equal) | 大于或等于 |
注:英文操作符是专门用于整数比较的
4.字符串比较
格式1:[ 字符串1 = 字符串2 ]
格式2:[ -z 字符串 ]
=:字符串内容相同
!=:字符串内容不同,!取反
-z:字符串内容为空
注:符号操作符可用于整数比较和字符串比较
5. 逻辑测试
格式1:[ 表达式1 ] 操作符 [ 表达式2 ] ...
格式2:命令1 操作符 命令2 ...
常用的测试操作符:
-a或&&:逻辑与,且的意思
-o或||:逻辑或,或者的意思
!:逻辑非,否的意思
二:if语句
1.单分支结构
if 条件语句
then 命令
fi
2.单分支结构实例
问题一:9大于5,输出ok
问题二:判断/opt目录下有没有abc.sh文件,如果没有就创建
3.双分支结构
if 条件
then 命令1
else 命令2
fi
4.双分支结构实例
输入一个数字,判断奇偶数
5.多分支结构
if 条件1
then 命令1
elif 条件2
then 命令2
else 命令3
fi
6.多分支机构实例
问题:将全班的分数划分等级。A:90-100、B:80-89、C:70-79、D:60-69、60以下显示不及格
7.嵌套if语句实例
整数比较,如果输入字符串,显示输入错误
三:case语句
1.case多分支结构
case语句格式:
case 变量名称 in
模式1)
命令1
;; //表示命令结束
模式2)
命令2
;;
*) //默认语句,
命令3 //可不写
esac //结尾反着写
2.case多分支结构实例
按等级划分成绩A:85-100、B:70-84、C:60-69,其他的分数则叫家长
总结:
1.在shell脚本中我们常用[]去进行判断,而不是用test
2.在判断中进行数值比较需要使用eq、gt等操作符,而不能使用><
3.在实际生产中if单支语句用的很少,常用的为if双分支和多分支较多
4.case语句常用于服务的启动