我是靠谱客的博主 平淡大船,这篇文章主要介绍条件测试和if语句用法一、条件测试二、if语句的结构三、case语句的结构,现在分享给大家,希望可以做个参考。

文章目录

  • 一、条件测试
      • 1、test命令
      • 2、文件测试
      • 3、整数值比较
      • 4、字符串比较
      • 5、逻辑测试
  • 二、if语句的结构
      • 1、单分支结构
      • 2、双分支结构
      • 3、多分支结构
  • 三、case语句的结构
          • case多分支结构
          • case语句注意事项

一、条件测试

1、test命令

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

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

2、文件测试

[操作符  文件或目录]

常用的测试操作符

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

基本用法

[root@localhost ~]# test -d yanzheng      #-d表示是否为目录,可以看出yanzheng是目录
[root@localhost ~]# echo $?
0     #所以返回0表示条件成立
[root@localhost ~]# test -d lan.sh      #lan.sh是个脚本文件,不是目录,返回1表示条件不成立
[root@localhost ~]# echo $?
1
[root@localhost ~]# [ -d yanzheng ]      #这是第二种表达方式
[root@localhost ~]# echo $?
0
[root@localhost ~]# [ -f yanzheng ]    #test条件表达式  文件或目录。[条件表达式  文件或目录]
[root@localhost ~]# echo $?
127
[root@localhost ~]# [ -f lan.sh ] && echo 'yes'   #&&表示并且的意思,具有判断能力
yes                                               #&&前面的条件满足输出,&&后面的命令,若不满足,则不输出

3、整数值比较

[整数1   操作数  整数2]

常用的测试操作符

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

4、字符串比较

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

基本用法

[root@localhost ~]# echo $LANG    #查看当前语言和字符集
zh_CN.UTF-8
[root@localhost ~]# [ $LANG = zh_CN.UTF-8 ] && echo 'yes'    #如果=成立,则输出yes
yes
[root@localhost ~]# [ $LANG != zh_CN.UTF-8 ] && echo 'yes'    #不成立则不输出
[root@localhost ~]# [ $LANG != zh_CN.UTF-8 ] && echo 'yes' || echo 'no'  
no                                       #||表示上一条执行失败后,才执行下一条命令!=没有成立,所以不输出yes,输出yes命令执行失败,执行输出no

5、逻辑测试

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

常用的测试操作符

-a或&&        表示逻辑与而且的意思
-o或 ||       表示或,或者的意思
!               逻辑否

二、if语句的结构

1、单分支结构

if    条件测试操作       if已用磁盘>80%
then   命令序列           then报警
fi

在这里插入图片描述
创建新的目录的脚本步骤
在这里插入图片描述

2、双分支结构

判断目标主机是否存活,显示检验结果

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

在这里插入图片描述

3、多分支结构

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

在这里插入图片描述
基本用法

[root@localhost ~]# vim lan.sh  //打开一个lan.sh进行脚本编辑
#!/bin/bash    //声明解释器
read -p "分数成绩:" fen   
   if [ $fen -ge 85 ]; then   //运用多分支结构 进行将成绩分数分类
          echo  "成绩优秀"
elif [ $fen -ge 70 -a $fen -le 84 ];then
     echo "成绩良好"
elif [ $fen -ge 60 -a $fen -le 69 ];then
    echo "成绩合格"
elif [ $fen -lt 60 ];then
   echo "成绩不合格"
fi
[root@localhost ~]# bash lan.sh    //通过bash来将lan.sh进行运行
分数成绩:20
成绩不合格
[root@localhost ~]# bash lan.sh
分数成绩:90     //查看的分数在哪个阶段下面
成绩优秀

三、case语句的结构

case多分支结构
case  变量值 in
模式一)
      命令序列
;;
 模式二)
      命令序列
;;
模式三)
     命令序列
;;
......
*)
     默认命令序列
esac                 
case语句注意事项

①case行首必须以单词“in”,每一模式必须以单个右括号“)”结束
②双分号“;;”表示命令序列的结束
③模式字符串中,可以用方括号表示一个连续的范围,如“[0-9]”;还可以使用管道符表示或,比如a|b
④最后的*)表示默认模式,其中的*相当于通配符
基本用法

[root@localhost ~]# vim  week.sh  
#!/bin/bash    //声明解释器
read -p "请输入月份:" month   //将输入月份来判断是哪个季度
case $month in
[1-3])    //1-3 表示的是第一个季度
echo "这是第一个季度";;
[4-6])
echo "这是第二个季度";;
[7-9])
echo "这是第三个季度";;
1[0-2])
echo "这是第四个季度";;
*)
echo "输入错误";;
esac
[root@localhost ~]# bash week.sh   //执行该文件
请输入月份:1    //输入1 表示查看1月份是在哪个季度上面
这是第一个季度
[root@localhost ~]# bash week.sh
请输入月份:4
这是第二个季度
[root@localhost ~]# bash week.sh
请输入月份:7
这是第三个季度
[root@localhost ~]# bash week.sh
请输入月份:10
这是第四个季度

最后

以上就是平淡大船最近收集整理的关于条件测试和if语句用法一、条件测试二、if语句的结构三、case语句的结构的全部内容,更多相关条件测试和if语句用法一、条件测试二、if语句内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(97)

评论列表共有 0 条评论

立即
投稿
返回
顶部