• Shell脚本学习笔记5——if条件语句


    1.条件测试语句能够让Shell脚本根据实际工作灵活调整工作内容,例如判断系统的状态后执行指定的工作,或创建指定数量的用户,批量修改用户密码,这些都可以让Shell脚本通过条件测试语句完成。

    if条件语句

    if条件语句分为单分支结构双分支结构多分支结构,复杂度逐级上升,但却可以让Shell脚本更加的灵活。

    单分支结构:

    由if、then、fi关键词组成,只在条件成立后执行。

    单分支if语句:判断目录是否存在,若不存在则自动创建。

    编写Shell脚本并写入下面的语句:

    1
    2
    3
    4
    5
    6
    #!/bin/bash
    DIR="/home/jacun"
    if [ ! -e $DIR ]
    then
    mkdir -p $DIR
    fi

    执行脚本:

    1
    sh DemoCreateFolder.sh

    查看该目录是否被创建:

    1
    ls -d /home/jacun

     

    双分支结构

    由if、then、else、fi关键词组成,做条件成立或条件不成立的判断。

    双分支if语句:判断指定主机能否ping通,根据返回结果分别给予提示或警告。

    为了减少用户的等待时间,需要为ping命令追加-c参数代表发送数据包的个数,-i代表每0.2秒发送一个数据包,-W则为3秒即超时。而$1为用户输入的第一个参数(IP地址),$?为上一条命令的执行结果,判断是否等于0(即成功)。

    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/bash
    ping -c 3 -i 0.2 -W 3 $1 &> /home/jacun/jacun
    if [ $? -eq 0 ]
    then
    echo "$1 is OK!"
    else
    echo "$1 is down"
    fi
    1
    sh DemoPing.sh 192.168.20.47

     检测主机IP地址,根据返回值判断是否OK:

    判断主机出现网络故障:

    多分支结构

    由if、then、else、elif、fi关键词组成。

    多分支if语句:

    判断用户输入的分数在那个区间内,然后判定为优秀、合格或不及格:

    read命令用于将用户的输入赋值给指定变量,格式为:(read -p [提示语句] 变量名)

    使用read命令让用户为GRADE变量赋值,判断分数必须同时满足大于85且小于100才输出"优秀",判断分数必须同时满足大于70且小于84才输出"合格",其余的情况输出"不及格"。

    创建并编辑DemoGrade.sh

    1
    vim DemoGrade.sh

     编辑内容:

    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/bash
    read -p "请输入分数(0-100):" GRADE
    if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ];then
    echo "$GRADE 优秀"
    elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ];then
    echo "$GRADE 合格"
    else echo "$GRADE 不及格"
    fi

     

    原文链接:https://www.cnblogs.com/zjiacun/p/8194807.html

  • 相关阅读:
    LeetCode OJ 107. Binary Tree Level Order Traversal II
    LeetCode OJ 116. Populating Next Right Pointers in Each Node
    LeetCode OJ 108. Convert Sorted Array to Binary Search Tree
    LeetCode OJ 105. Construct Binary Tree from Preorder and Inorder Traversal
    LeetCode OJ 98. Validate Binary Search Tree
    老程序员解Bug的通用套路
    转载 四年努力,梦归阿里,和大家聊聊成长感悟
    转载面试感悟----一名3年工作经验的程序员应该具备的技能
    Web Service和Servlet的区别
    关于spring xml文件中的xmlns,xsi:schemaLocation
  • 原文地址:https://www.cnblogs.com/young-dalong/p/15127373.html
Copyright © 2020-2023  润新知