Shell编程必备:条件语句

一、条件测试

1.1 测试命令test

对特定条件进行测试,并根据返回值来判断条件是否成立(返回值为 0 表示条件成立,反之不成立)。
使用test命令测试时,有两种形式:(常用格式二)

格式一:test 条件表达式
格式二:[ 条件表达式 ]        #方括号两边与条件表达式之间需要至少一个空格进行分隔

1.2 文件测试

格式:

[ 操作符 文件或目录 ]

常用的测试操作符

操作符 功能
-d 测试是否为目录(Directory)
-e 测试目录或文件是否存在(Exist)
-f 测试是否为文件(File)
-r 测试当前用户是否有权限读取(Read)
-w 测试当前用户是否有权限写入(Write)
-x 测试当前用户是否有权限执行(eXcute)

在这里插入图片描述

1.3 整数值比较

格式:

[ 整数1 操作符 整数2 ]

常用的测试操作符

操作符 功能 符号
-eq 等于(Equal) ==
-ne 不等于(Not Equal) !=
-gt 大于(Greater Than) >
-lt 小于(Lesser Than) <
-le 小于等于(Lesser or Equal) <=
-ge 大于等于(Greater or Equal) >=

1.4 字符串比较

格式:

[ 字符串1 = 字符串2 ]
[ 字符串1 != 字符串2 ]
[ -z 字符串 ]
常用选项 作用
= 第一个字符串与第二个字符串相同
!= 第一个字符与第二个字符串不相同,“!”表示取反
-z 字符串内容为空

1.5 逻辑测试

判断两个或多个条件之间的依赖关系
格式:

[ 表达式1 ] 操作符 [ 表达式2 ]     ##操作符&&或者||
命令1 操作符 命令2                 ##操作符&&或者||
[ 表达式1 操作符 表达式2 ]          ##操作符-a或者-o

常用的测试操作符

  • -a或&&:逻辑与,而且的意思,前后条件都需要成立
  • -o或者||:逻辑或,或者的意思,前后条件中只需成立一个
  • !:逻辑否

二、if语句

2.1 单分支结构

条件成立的时候才会执行相应的操作,否则不执行。
格式:

if 条件测试操作
then
命令序列
fi

在这里插入图片描述

2.2 双分支 if 语句

两种情况执行不同的操作
格式:

if 条件测试操作
then
命令序列 1
else
命令序列 2
fi

在这里插入图片描述

2.3 多分支结构

针对if的特性,嵌套使用,进行多次判断
格式:

if 条件测试操作 1
then
命令序列 1
elif 条件测试操作 2
then
命令序列 2
else
命令序列 3
fi

在这里插入图片描述

三、case分支语句

用于变量存在多种取值,对每种取值执行不同的命令,与if语句相似
格式:

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

注意:
使用case分支语句时,有几个值得注意的特点如下所述
case行尾必须为单词in,每一模式必须以右括号“)”结束
双分号“;;”表示命令序列的结束
模式字符串中,可以用方括号表示一个连续的范围,如“[ 0-9 ]”:还可以用竖杠符号“|”表示或,如“A|B”
最后的“*)”表示默认模式,其中的 * 相当于通配符
在这里插入图片描述
例:输入成绩判定等级,0-59分为不及格,60-74分为及格,75-89分为良好,90-100分为优秀,若为其他内容则显示输入错误。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_50355475/article/details/111628791