条件测试与if语句
- 一、条件测试
- (一)test命令
- (二)文件测试
- (三)整数值比较
- (四)字符串比较
- (五)逻辑测试
- 二、if语句
- (一) 单分支语句
- (二)双分支结构
- (三)多分支语句
一、条件测试
(一)test命令
1.测试表达式是否成立,若不成立返回0,否则返回其他数值
格式1:test 条件表达式
格式2:[ 条件表达式 ]
(二)文件测试
[ 操作符 文件或目录 ]
2.常用的测试操作符
-d | 测试是否为目录(Directory) |
-e | 测试目录或文件是否存在(Exist) |
-f | 测试是否为文件(File) |
-r | 测试当前用户是否有权限读取(Read) |
-w | 测试当前用户是否有权限写入(Write) |
-x | 测试当前用户是否有权限执行(eXcute) |
(三)整数值比较
[ 整数1 操作数 整数2 ]
2.常用的测试操作符
-eq | 等于(Equal) |
-ne | 不等于(Not Equal) |
-lt | 小于(Leser Than) |
-gt大于(Greater Than) | |
-le | 小于或等于(Lesser or Equal) |
-ge | 大于或等于(Greater or Equal) |
(四)字符串比较
格式1 [ 字符串1 = 字符串2 ]
[ 字符串1 != 字符串2 ]
格式2 [ -z 字符串 ]
2.常用的测试操作符
= | 字符串内容相同 |
!= | 字符串内容不同,!号表示相反的意思 |
-z | 字符串内容为空 |
(五)逻辑测试
格式1:[ 表达式1 ] 操作符 [ 表达式2 ]
格式2:命令1 操作符 命令2
1.常用的测试操作符
-a或&& | 逻辑与,而且的意思 |
-o或▕▕ | 逻辑或,或者的意思 |
! | 逻辑否 |
==&&、 |
a=5
[ $a -ne 1 ] && [ $a != 2 ] 等同于 [ $a -ne 1 -a $a != 2 ]或 [[ $a -ne 1 && $a !=2 ]]
二、if语句
if语句的使用要判断多个不同条件
(一) 单分支语句
if单分支语句是当满足某个条件时,执行某个操作,而不满足该条件时,不执行任何操作结构:
if [ 5 -gt 3 ]
then
echo "yes"
fi
或 if [ 5 -gt 3 ]; then echo “yes”; fi
或[ 5 -gt 3 ] && echo "yes"
(二)双分支结构
== if双分支语句是当满足某个条件时,执行某个操作,当不满足这个条件时,执行另一个操作==
格式:
if
[ 条件表达式 ]
then
echo “命令序列”
else
echo “命令序列”
fi
(三)多分支语句
if多分支语句是当满足条件1时,执行命令1;
—>当不满足条件1时,往下走,判断是否满足条件2,如果满足条件2则执行命令2;
—>如果不满足条件2,则继续往下走,直到走到else语句,说明之前的条件都不满足,最终执行命令n
基本格式:
case 变量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
*)
默认命令序列
esac