Shell编程之条件语句

本文详细介绍了Linux中的条件测试,包括test命令、文件测试、整数值比较、逻辑测试和三元运算符。接着,讲解了if语句的各种结构,如单分支、双分支、多分支以及内嵌if语句的使用。最后,提到了case分支语句在多条件匹配中的应用,特别是在脚本中的作用。
摘要由CSDN通过智能技术生成

目录

一、条件测试

1)test命令

​编辑

 2)文件测试

常用的测试操作符

​编辑

 4)整数值比较

常用的测试操作符

6)逻辑测试

常用的测试操作符

7)三元运算符

二、if语句

1)单分支结构

2)双分支结构

​编辑

3)多分支结构

4)内嵌if语句 

三、case分支语句


一、条件测试

1)test命令

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

格式2:[ 条件表达式 ]

 2)文件测试

[ 操作符 文件或目录 ]

常用的测试操作符

操作符作用

-e

测试指定的文件或者目录是否存在

-f

测试指定对象是否为文件;指定的文件是否存在

-d

测试指定的对象是否为目录;指定的目录是否存在

-r

测试指定用户是否有读权限

-w

测试当前用户是否有写权限

-x

测试当前用户是否有执行权限

-L

测试文件是否为符号链接(软链接文件)

 4)整数值比较

[ 整数1 操作符 整数2]

常用的测试操作符

操作符含义(整数对比)符号表示(可用于字符串)

-eq

等于

==

-gt

大于

\>

-lt

小于

\<

-ge

大于等于

>=或=>

-le

小于等于

<=或=<

-ne

不等于

!=luo

6)逻辑测试

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

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

常用的测试操作符

操作符符号名称解释
-a&&逻辑且前后条件都要成立
-o||逻辑或只需前后条件中一个成立
逻辑否否定

7)三元运算符

[ 表达式 ] && a || b   #如果表达式为真,则返回a,否则返回b
[ 表达式 ] && a        #如果表达式为真,则返回 a,否则返回表达式的值

二、if语句

If条件判断语句,通常以if开头,fi结尾。也可加入else或者elif进行多条件的判断

1)单分支结构

# 单分支语句
    if [ 表达式 ];then
        语句1
    fi

示例:判断/opt目录下,有没有这个test.sh这个文件,如果没有则进行创建

2)双分支结构

# 双分支if 语句
    if [ 表达式 ];then
        语句1
    else
        语句2
    fi

示例:ping 指定的IP,能ping通echo online,ping不通,则打印 echo offline

ps:&> /dev/null为把输出显示器的信息放入/dev/null黑洞文件中,这样就不会提示

3)多分支结构

# 多支条件语句
    if [ 表达式 ];then
        语句1
    elif [ 表达式 ];then
        语句2
    elif [ 表达式 ];then
        语句2
    fi  

示例:手动输入分数,并根据分数段进行评级,85-100为A,70-84为B,60-59为C,0-59为D

4)内嵌if语句 

即if中嵌套if语句

if [ 表达式 ];then
   if [ 表达式 ];then
        语句1
   else
        语句2
   fi
else
  语句3
fi

示例:提示用户输入100米赛跑的秒数

要求判断秒数大于0且小于等于10秒的进入选拔赛,大于10秒的都淘汰

如果输入其他字符则提示重新输入;进入选拔赛的成员再进一步判断男女性别

男生进男生组,女生进女生组,如果输入错误请提示错误


三、case分支语句

#Case选择语句,主要用于对多个选择条件进行匹配输出,与if elif语句结构类似,通常用于脚本传递输入参数,打印出输出结果及内容,其语法格式以Case…in开头,esac结尾。语法格式如下:

case 模式名 in
  模式 1)
    命令
    ;;
  模式 2)
    命令
    ;;
  *)
    不符合以上模式执行的命令
  esac

# 每个模式必须以右括号结束,命令结尾以双分号结束。

示例:手动输入分数,并根据分数段进行评级,85-100为A,70-84为B,60-59为C,0-59为D

  

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值