条件测试与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"
 fiif [ 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

猜你喜欢

转载自blog.csdn.net/weixin_53567573/article/details/114357662