Shell条件判断语句详细解析步骤

Shell语句

Shell环境根据命令执行后的返回状态值($?)来判断是否执行成功,当返回值为0(真true)时表示成功,返回值为非0值(假false)时表示失败或异常。

一、条件语句

(1)test命令
格式一:test 条件表达式
格式二:[ 条件表达式 ]
(2)文件测试
格式:[ 操作符 文件或目录 ]
常用的操作符:
-e:测试目录或文件是否存在(Exist)。
-d:测试是否为目录(Directory)。
-f:测试是否为文件(File)。
-r:测试当前用户是否有权限读取(Read)。
-w:测试当前用户是否有权限写入(Write)。
-x:测试是否设置有可执行(Excute)权限。

在这里插入图片描述

(3)整数值比较
格式:[ 整数变量1 操作符 整数变量2 ]
常用的操作符:
-eq:等于					
-ne:不等于					
-gt:大于				
-lt:小于					
-le:小于等于
-ge:大于等于

在这里插入图片描述

(4)字符串比较
格式1:
[  字符串1  =  字符串2 ] 或 [  字符串1  ==  字符串2 ] 
[  字符串1  !=  字符串2 ]

格式2:
[  -z  字符串 ]		#检查字符串是否为空(Zero),对于未定义或赋予空值的变量将视为空串
[  -n  字符串 ]		#检查是否有字符串存在

在这里插入图片描述

(5)逻辑测试
格式1:[  表达式1  ]  操作符  [  表达式2  ]  / [[ 表达式1 操作符 表达式2 ]]
格式2:命令1  操作符  命令2

常用的操作符:
-a或&& :逻辑与,“而且”的意思,前后条件需都成立
-o或|| :逻辑或,“或者”的意思,只需前后条件中一个成立
! :逻辑否

在这里插入图片描述

二、if语句

(1)单分支 if 语句

在这里插入图片描述

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

在这里插入图片描述

(2)双分支 if 语句

在这里插入图片描述

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

例子:

#!/bin/bash

read -p "输入性别" a
if [ $a = "男"  ]
then
        echo "$a 组"
else
        echo "女 组"
fi

在这里插入图片描述

(3)多分支 if 语句

在这里插入图片描述

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

例子:

#!/bin/bash
read -p "请输入您的分数(0-100): " z
if [ $z -ge 85 ] && [ $z -le 100 ]
then
        echo "$z 分,优秀!"
elif [ $z -ge 70 ] && [ $z -le 84 ]
then
        echo "$z 分,合格!"
else
        echo "$z 分,不合格!"
fi

在这里插入图片描述

三、case语句

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

例子:

#!/bin/bash
read -p "请输入您的分数(0-100): " w
[[ $w -ge 85 && $w -le 100 ]] && a="yx"
[[ $w -ge 70 && $w -lt 85 ]] && a="hg"
[[ $w -ge 0 && $w -lt 70 ]] && a="bhg"
case $a in
yx)
        echo " 优秀!"
;;
hg)
        echo "合格!"
;;
bhg)
        echo "不合格!"
;;
*)
        echo "输入有误!"
esac

在这里插入图片描述

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值