条件测试与if语句

  • 一、条件测试
  • (一)test命令
  • (二)文件测试
  • (三)整数值比较
  • (四)字符串比较
  • (五)逻辑测试
  • 二、if语句
  • (一) 单分支语句
  • (二)双分支结构
  • (三)多分支语句


一、条件测试

(一)test命令

1.测试表达式是否成立,若不成立返回0,否则返回其他数值

格式1:test 条件表达式
格式2:[ 条件表达式 ]

if test 类型_if语句

(二)文件测试



[ 操作符 文件或目录 ]

2.常用的测试操作符

-d

测试是否为目录(Directory)

-e

测试目录或文件是否存在(Exist)

-f

测试是否为文件(File)

-r

测试当前用户是否有权限读取(Read)

-w

测试当前用户是否有权限写入(Write)

-x

测试当前用户是否有权限执行(eXcute)

if test 类型_if语句_02

(三)整数值比较



[ 整数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 test 类型_if test 类型_03

if [ 5 -gt 3 ]
 then
 echo "yes"
 fi  

或 if [ 5 -gt 3 ]; then echo “yes”; fi 

或[ 5 -gt 3 ] && echo "yes"

(二)双分支结构

== if双分支语句是当满足某个条件时,执行某个操作,当不满足这个条件时,执行另一个操作==

if test 类型_shell_04

格式:
 if
 [ 条件表达式 ]
 then
 echo “命令序列”
 else
 echo “命令序列”
 fi

(三)多分支语句

if多分支语句是当满足条件1时,执行命令1;

—>当不满足条件1时,往下走,判断是否满足条件2,如果满足条件2则执行命令2;

—>如果不满足条件2,则继续往下走,直到走到else语句,说明之前的条件都不满足,最终执行命令n

if test 类型_shell_05

基本格式:
case 变量值 in
模式1)
	命令序列1
;;
模式2)
	命令序列2
;;
*)
	默认命令序列
esac