• shell脚本之七:if结构条件句知识与实践


    七、if结构条件句知识与实践

    (一)if条件句单双分支语法

    1、单分支
    if 条件
       then
       指令
    fi
    2、双分支
    if 条件
       then
       指令
    else
       指令集2
    fi
    

    (二)if条件句多分支语句

    1、语句的结构

    if 条件1
       then
       指令1
    elif 条件2
       then
       指令2
    elif 条件3
       then
       指令3
    else
       指令4   
    fi 
    

    2、实例:判断目录是否存在

    如果不存在目录/backup,则创建。
    [root@centos6-kvm3 scripts]# cat 07-01.sh
    #!/bin/bash
    path="/backup"
    [ -d $path ] || mkdir $path -p
    if [ -d $path ]
    then
       :(冒号表示什么都不做)
    else
      mkdir $path -p
    fi
    
    if [ !-d $path]
    then
      mkdir $path -p
    fi
    [root@centos6-kvm3 scripts]#
    

    3、实例:判断服务器内存大小

    开发shell脚本判断内存是否充足,如果小于100,提示不足,如果大于100提示充足。
    [root@centos6-kvm3 scripts]# cat 07-02.sh 
    #!/bin/bash
    mem=`free -m | awk 'NR==3{print $NF}'`
    if [ $mem -lt 100 ]
    then
       echo "内存不充足!"
    else
       echo "内存充足!"
    fi
    [root@centos6-kvm3 scripts]# 
    

    4、实例:判断两个整数大小

    [root@centos6-kvm3 scripts]# cat 07-03.sh
    #!/bin/bash
    read -p "请输入两个整数:" a b
    expr $a + $b + 1 &>/dev/null
    if [ $? -ne 0 ]
    then
       echo "请输入两个整数。"
       exit 0
    fi
    if [ -z "$b" ]
    then
      echo "请输入两个整数。"
      exit 1
    fi
    
    if [ $a -lt $b ]
    then
       echo "$a小于$b"
    elif [ $a -gt $b ]
    then
       echo "$a大于$b"
    else
       echo "$a等于$b"
    fi
    如果使用传参方式:
    [$# -ne 2 ]判断参数是否为两个。
    

    5、实例:打印一个安装菜单

    [root@centos6-kvm3 scripts]# cat 07-04.sh
    #!/bin/bash
    cat <<EOF
    1.install lamp
    2.install lnmp
    3.exit
    EOF
    read -p "请输入一个数字{1|2|3}:" n
    expr $n + 2 &>/dev/null
    if [ $? -ne 0 ]
    then
       echo "usage:$0{1|2|3}"
       exit 0
    fi
    
    if [ $n -eq 1 ]
    then
       echo "install lamp"
    elif [ $n -eq 2 ]
    then
       echo "install lnmp"
    elif [ $n -eq 3 ]
    then
       echo "exit"
    else
       echo "usage:$0{1|2|3}"
    fi
    [root@centos6-kvm3 scripts]# 
    
    
    
  • 相关阅读:
    免装版tomcat注册成windows系统服务方法
    IE下判断IE版本的语句...[if lte IE 8]……[endif]
    HTTP 消息结构
    RESTful API 设计指南
    Spring Cloud Alibaba Sentinel 流量卫兵
    SpringBoot 整合 ES 实现 CRUD 操作
    SpringBoot项目创建与第一个SSM项目示例
    SpringBoot整合邮件发送
    SpringBoot日志处理之Logback
    Java实现AES加密解密
  • 原文地址:https://www.cnblogs.com/cuiyongchao007/p/12798180.html
Copyright © 2020-2023  润新知