条件测试与if语句以及case语句

条件测试与if语句以及case语句

一、条件测试

1.条件测试命令

test命令:测试表达式是否成立,若成立返回0,否则返回其他数值
 格式:
     格式1: test   条件表达式
     格式2:[  条件表达式  ]

2.文件测试

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

在这里插入图片描述

3.常用的测试操作符

 -eq:等于(Equal)
 -ne :不等于 (Not Equal)
 -gt:大于 (Greater Than)
 -lt:小于(Lesser Than)
-le:小于或等于 (Lesser or Equal)
-ge:大于或等于 (Greater or Equal)

在这里插入图片描述

4.字符串比较

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

=:字符串内容相同
!=:字符串内容不同,!号表示相反的意思
-z:字符串内容为空

在这里插入图片描述

二、if语句

1. 单分支结构

   if   条件测试操作
        then    命令序号
   fi
  1. 针对目录模拟

    [root@server2 ~]# vi mkdir.sh
    [root@server2 ~]# chmod +x mkdir.sh
    [root@server2 ~]# ./mkdir.sh
    [root@server2 ~]# ls -R /a
    [root@server2 ~]# cd /
    [root@server2 /]# ls -lh
    

vi mkdir.sh
#!/bin/bash

创建目录

dir="/a/b"
if [ ! -d $dir ]
then mkdir -p $dir
fi
针对用户模拟

[root@server2 ~]# echo KaTeX parse error: Expected 'EOF', got '#' at position 31: …root@server2 ~]#̲ su zjq
[zjq@se… sudo vi a.sh
[zjq@server2 root]$ sudo chmod +x a.sh
[zjq@server2 root]$ sudo ./a/sh

#!/bin/bash

判断当前用户是否为root 查看当前用户是否是root,不是报错

if [ ! “$USER” = “root” ]
then echo “当前用户不是root”
fi

2.双分支结构

格式: 
    if     条件测试操作                             if     端口号是否在监听
           then    命令序列1         →                   then   网站服务已在运行
           else    命令序列2                             else    启动httpd服务 
    fi                                   fi          

在这里插入图片描述

在这里插入图片描述

3.多分支结构

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

在这里插入图片描述

三、case语句

1.case多分支结构

case  变量值 in                           case 分数  in
模式1)                                   85-100)
命令序列1                                 判为优秀
;;                                        ; ;
模式2)               →                   70-84)
命令序列2                                  判为合格
 ; ;                                       ; ;
....                                      ......
*)                                       *)
默认命令序列                               判为不合格
esac                                      esac
  1. 用case判断字符
    [root@server2 ~]# vi character.sh
    [root@server2 ~]# chmod +x case.sh
    [root@server2 ~]# ./character.sh

#!/bin/bash

判断输入的字符是哪种类型

read -p "请输入一个字符并按enter回车确认" key
case "$key" in
[a-z]|[A-Z])                   匹配 a-z 字母
     echo "您输入的是字母."    
  ;;
[0-9])                            匹配 0-9 数字
     echo "您输入的是数字."
  ;;     
 *)                                  匹配任意字符 
     echo "您输入的是空格,功能键,其它控制字符." 
exit 1
esac
  1. 使用case判断成绩
    [root@server2 ~]# vi score.sh
    [root@server2 ~]# chmod +x score.sh
    [root@server2 ~]# ./score.sh

#!/bin/bash

成绩输入判断

read -p "成绩:" b
case "$b" in
 100)
  echo "满分"
;;
9[0-9])
  echo "优秀"
 ;;
 8[0-9])
  echo "良"
;;
7[0-9])
  echo "良好"
;;
6[0-9])
  echo "合格"
;;
*)
  echo "不及格"
esac

 
 

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值