shell编程——if语句(if -z -n -f -x -eq -ne -lt -a -o)

shell流程控制与其他语言有一点不同就是它的流程控制不可为空,即else分支没有语句执行,就不要写这个else。本文介绍if语法使用方法、特殊文本表达式-z -n -f -eq -ne -lt等及shell的逻辑表达式用法。

1.if语法

条件表达式一定要有fi结尾!!!

  1. if语法格式
    在这里插入图片描述
    命令执行成功,返回0 (比如grep ,找到匹配)
    执行失败,返回非0 (grep,没找到匹配)

    if语句也可以写成一行,这种方式适用于终端命令提示符。
    在这里插入图片描述

  2. if else 语法格式
    在这里插入图片描述

  3. if else-if else
    在这里插入图片描述

如下示例:
在这里插入图片描述

2.if简化

最常用的if简化就是使用&&||表示。

  1. && :表示如果符号&&前面表达式为真,则执行&&符号后面的表达式。

    #检查/var/run/dhcpd.pid文件是否存在,如果存在就删掉
    #-f表示文件存在
    [ -f /var/run/dhcpd.pid ] && rm /var/run/dhcpd.pid    
    
  2. ||:表示如果符号||前面表达式为假,则执行||符号后面的表达式。

    #检验文件/usr/sbin/dhcpd是否存在,如果不存在就退出
    [ -f /usr/sbin/dhcpd ] || exit 0    
    
  3. 使用if简化 和$1,$2,$3来检测参数,不合理就调用help。

    #如果第一个参数不存在(-z 字符串长度为0 )
    [ -z "$1" ] && help       
    #如果第一个参数是-h,就显示help          
    [ "$1" = "-h" ] && help             
    #上述等号=两边要有空格才表示=是等号           
    

3.条件表示式

在这里插入图片描述
文本表达式比较常用!!!

  1. if [ -f file ] :如果文件存在
  2. if [ -d … ] :如果目录存在
  3. if [ -s file ] :如果文件存在且非空
  4. if [ -r file ] :如果文件存在且可读
  5. if [ -w file ] :如果文件存在且可写
  6. if [ -x file ] : 如果文件存在且可执行

整数条件表达式,大于,小于,shell里没有> 和< ,会被当作尖括号,只有-ge,-gt,-le,lt!!!

4.逻辑表达式

  1. 逻辑非 !
    非!:表示与条件表达式相反。

    if [ ! 表达式 ]
    

    if [ ! -d $num ] :表示如果不存在目录$num

  2. 逻辑或 -o
    表示条件表达式的或。

    if [ 表达式1  –o 表达式2 ]
    
  3. 逻辑与 –a
    表示条件表达式的与。

    if [ 表达式1  –a  表达式2 ]
    

逻辑符号正常的接其他表达式,没有任何括号(),直接并列写即可!!!
如下:
在这里插入图片描述

每天进步一点点、充实一点点、加油!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值