LINUX——shell之条件语句

文章目录

  • 一、条件测试操作
    • 1、文件测试
    • 2、整数值比较
    • 3、字符串比较
    • 4、逻辑测试
  • 二、if语句的结构
  • 三、case分支语句
    • 1、case多分支语句针对变量的不同取值,分别执行不同的命令序列
    • 2、示例

一、条件测试操作

test命令
测试特定的表达式是否成立,当条件成立时,测试语句的返回值为0,否则为其他数值
格式1:test 条件表达式

格式2:[ 条件表达式 ]

1、文件测试

[ 操作符 文件或目录 ]

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

方法一:使用test
LINUX——shell之条件语句_第1张图片
方法二:使用 [ ]
LINUX——shell之条件语句_第2张图片

2、整数值比较

[ 整数1 操作符 整数2]

常用的测试操作符
-eq:等于(Equal)
-ne:不等于(Not Equal)
-gt:大于(Greater Than)
-lt:小于(Lesser Than)
-le:小于或等于(Lesser or Equal)
-ge:大于或等于(Greater or Equal)

在这里插入图片描述
LINUX——shell之条件语句_第3张图片
LINUX——shell之条件语句_第4张图片

3、字符串比较

格式1:

[ 字符串1 = 字符串2 ]

[ 字符串1 != 字符串2 ]
格式2:
[ -z = 字符串 ]

常用的测试操作符

=:字符串相同
!=:字符串内容不同,!号表示相反的意思
-z:字符串内容为空
LINUX——shell之条件语句_第5张图片
LINUX——shell之条件语句_第6张图片

4、逻辑测试

格式1:[ 表达式1 ] 操作符 [ 表达式2 ] …

格式2:命令1 操作符 命令2 …

常用的测试操作符
-a或&& :逻辑与,“而且”的意思
-o或|| :逻辑或,“或者”的意思
! :逻辑否

二、if语句的结构

单分支结构
条件成立则继续执行then后面的命令

条件不成立将不执行,直接exit退出结束
LINUX——shell之条件语句_第7张图片
双分支结构
条件成立则执行then后面的命令1

条件不成则执行else面的命令2
LINUX——shell之条件语句_第8张图片
多分支结构
条件1成立则执行then后面的命令1

条件1不成立则执行条件2

条件2成立则执行then后面的命令

条件2不成立则默认执行else后面的命令LINUX——shell之条件语句_第9张图片
单分支if语句:LINUX——shell之条件语句_第10张图片
LINUX——shell之条件语句_第11张图片
双分支if语句:
LINUX——shell之条件语句_第12张图片
LINUX——shell之条件语句_第13张图片
LINUX——shell之条件语句_第14张图片
多分支if语句:判断分数范围
LINUX——shell之条件语句_第15张图片
LINUX——shell之条件语句_第16张图片

三、case分支语句

1、case多分支语句针对变量的不同取值,分别执行不同的命令序列

if语句:适用于判断区间范围
case语句:适用于判断某一个固定值,固定字符串

2、示例

击键类型识别key
#!/bin/bash
read -p “请敲击一个键:” key
case $key in
[0-9])
echo “你敲击的是一个数字”
;;
[a-z]|[A-Z])
echo “你敲击的是一个字母”
;;
*)
echo “你敲击的是一个符号或功能键”
esac

成绩判定
#!/bin/bash
read -p “请输入你的成绩:” ji
case “$ji” in
[0-9]|[1-5][0-9])
echo “你的成绩不合格”
;;
6[0-9]|7[0-4])
echo “你的成绩合格”
;;
7[5-9]|8[0-4])
echo “你的成绩良好”
;;
8[5-9]|9[0-9]|100)
echo “你的成绩优秀”
;;
*)
echo “输入错误,请输入0-100之间的整数”
esac

你可能感兴趣的:(linux)