Shell编程语句(if,case)

一、条件测试

1.1、文件测试

test命令

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

格式:

格式1:test 条件表达式
格式2:[ 条件表达式 ]     两端要有空格

文件测试

文件测试基本格式:
[ 操作符 文件或目录 ]  '注意两端空格'

&?  返回0表示条件成立,返回非零值表示条件不成立
&&  逻辑与,"而且"的意思
||  逻辑或,"或者"的意思
常见的测试操作符解释
-d测试是否为目录
-e测试目录或者文件是否存在 (exsit)
-f测试是否为文件(file)
-r测试当前用户是否有权限读取(read)
-w测试当前用户是否有权写入(write)
-x测试当前用户是否有权限执行(excute)
[root@localhost ~]# [ -d /media/cdrom ]; echo $?
1
[root@localhost ~]# test -d /media/cdrom
[root@localhost ~]# echo $?
1
[root@localhost ~]# [ -d /media/cdrom/server ]
[root@localhost ~]# echo $?
1

1.2、整数值比较

格式:
[ 整数1  操作符   整数2 ]

● -eq: 等于(Equal)

●-ne: 不等于(Not Equal)

●-gt: 大于(Greater Than)

●-lt: 小于(Lesser Than)

●-le: 小于或等于(Lesser or Equal)

●-ge: 大于或等于(Greater or Equal)

[root@localhost opt]# [ 55 -lt 80 ] && echo "yes"
yes
[root@localhost opt]# [ 80 -eq 80 ] && echo "yes"
yes

1.3、字符串比较

格式一:[ 字符串1 = 字符串2 ]
	   [ 字符串1 != 字符串2 ]
格式二:[ -z 字符串 ]
常用的测试操作符:
=:第一个字符串与第二个字符串相等
!=:第一个字符串与第二个字符串不同,其中“!”符号表示取反
-z:检查zizi

1.4、 逻辑测试

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

常用的测试操作符

-a或&&:逻辑与,"而且”的意思
-0或||: 逻辑或,“或者”的意思
!:逻辑否

[root@localhost ~]# [ -d /etc ] && [ -r /etc ] && echo "yes"
yes
[root@localhost ~]# [ -f /etc ] || [ -r /etc ]&&echo "yes"
yes
[root@localhost ~]# [ -f /etc ] && [ -r /etc ]&&echo "yes"
[root@localhost ~]# [ ! -f /etc ] && [ -r /etc ]&&echo "yes"
yes

二、if语句的结构

2.1、 单分支结构

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

在这里插入图片描述

2.2、 双分支结构

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

在这里插入图片描述

2.3 、多分支结构

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

2.4、 if语句应用示例

利用if条件语句实现查成绩,80-100分为优秀,60-79分为合格,低于60分不合格

[root@localhost ~]# vim jifan.sh 

#!/bin/bash
read -p "请输入你的成绩:" num
if [ $num -ge 0 ] && [ $num -le 100 ];then

  if [ $num -ge 80 ] && [ $num -le 100 ];then
    echo "成绩优秀"
  elif [ $num -ge 60 ] && [ $num -le 79 ];then
    echo "成绩合格"
  else
    echo "成绩不合格"
  fi

else
  echo "请输入正确的成绩"
fi

```powershell
[root@localhost opt]# ./jifan.sh 
请输入你的成绩:80
成绩优秀
[root@localhost opt]# ./jifan.sh 
请输入你的成绩:60
成绩合格
[root@localhost opt]# ./jifan.sh 
请输入你的成绩:40
成绩不合格
[root@localhost opt]# ./jifan.sh 
请输入你的成绩:101
请输入正确的成绩

三、case语句的结构

3.1、 case多分支结构

在这里插入图片描述

3.2 、case语句应用示例

[root@localhost ~]# vim 123.sh 

#!/bin/bash
read -p "请输入你的跑步成绩:" num
 case "$num" in
  [0-9]|10)
   echo "恭喜你进入决赛"
read -p "请输入你的性别(woman/man):" see
    case "$see" in
    woman)
    echo "你已被分入女子组"
    ;;
    man)
    echo "你已被分入男子组"
    ;;
  *)
    echo "请出入正确的性别"
  esac
   ;;
 *)
   echo "对不起,你已被淘汰"
esac

[root@localhost ~]# ./123.sh 
请输入你的跑步成绩:10
恭喜你进入决赛
请输入你的性别(woman/man):woman
你已被分入女子组
[root@localhost ~]# ./123.sh 
请输入你的跑步成绩:9
恭喜你进入决赛
请输入你的性别(woman/man):man
你已被分入男子组
[root@localhost ~]# ./123.sh 
请输入你的跑步成绩:12
对不起,你已被淘汰

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值