zoukankan      html  css  js  c++  java
  • 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]# 
    
    
    
  • 相关阅读:
    Java的参数传递是「按值传递」还是「按引用传递」?
    算法08 五大查找之:二叉排序树(BSTree)
    算法07 五大查找之:索引查找
    算法06 五大查找之:二分查找
    Django rest_framework实现RESTful API
    jenkins + pipeline构建自动化部署
    jenkins部署.net平台自动化构建
    python实现编写windows服务
    iis部署python运行环境
    Jenkins执行批处理文件、powershell失败
  • 原文地址:https://www.cnblogs.com/cuiyongchao007/p/12798180.html
Copyright © 2011-2022 走看看