zoukankan      html  css  js  c++  java
  • Linux就该这么学--Shell脚本条件语句(一)

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

    if条件语句

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

    单分支结构:

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

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

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

    #!/bin/bash
    DIR="/home/jacun"
    if [ ! -e $DIR ]
    then
    mkdir -p $DIR
    fi
    

    执行脚本:

    sh DemoCreateFolder.sh
    

    查看该目录是否被创建:

    ls -d /home/jacun
    

     

    双分支结构

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

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

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

    #!/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
    
    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

    vim DemoGrade.sh
    

     编辑内容:

    #!/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
    

     

  • 相关阅读:
    Node 文件上传,ZIP
    jquery实现前台倒计时。应用下单24小时后自动取消该订单
    solr 4.4添加索引是新手容易遇到的问题
    solr 4.6的安装配置
    java.lang.OutOfMemoryError: PermGen space
    java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: NO)
    mybatis代码生成(generator工具生成代码)
    再次熟悉jdbc连接mysql
    魔方阵,奇数阵。输入一个奇数,产生一个魔方阵
    错误,这个如何解决呢?内存溢出的问提。把JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m 还是不行
  • 原文地址:https://www.cnblogs.com/zjiacun/p/8194807.html
Copyright © 2011-2022 走看看