zoukankan      html  css  js  c++  java
  • if条件语句!

    1、if 单分支语句

    if [ 条件语句 ]
      then

        条件操作
    fi

    例子:

    [root@localhost ~]# if [ 1 -eq 0 ]                    //如果1等于0
    > then                                                           
    > echo "正确"                                               //输出正确
    > else                                                          
    > echo "错误"                                              //输出错误
    > fi                                                              //fi结束语句
    错误

    rpm -q vsftpd                                           //查询vsftpd软件是否存在
    if [ $? -eq 1 ]                                            //如果echo $?等于1
       then                                                        
              yum -y install vsftpd                             //安装vsftd
    fi

    mount_DVD="/media/cdrom"              //定义变量mount_DVD将/media/cdrom赋值给mount_DVD
    if [ ! -d $mount_DVD ]                         //如果mount_DVD不是目录
       then
             mkdir -p $mount_DVD              //创建/media/cdrom
    fi                                                          //fi结束语句

    =======================================================================

    if多分支语句

    if [ 条件语句 ]
       then

             条件操作

      else

            条件操作
    fi

    if [ -d /slp ]                            //如果/slp目录存在
      then
            echo "目录已存在"     //输出目录已存在
    else
           mkdir /slp                  //创建/slp目录
    fi

    =========================================================

    (4)逻辑测试
    1>格式:
    [ 表达式 1 ] 操作符 [ 表达式 2 ] …
    命令 1 操作符 命令 2 …
    2>常用的测试操作符:
    -a 或&&:逻辑与,“而且”的意思
    -o 或||:逻辑或,“或者”的意思
    !:逻辑否

    3、if 多分支语句结构
    if [ 条件语句 ]
       then

         条件操作
    elif [ 条件语句]
         then

             条件操作
    else
             条件操作
    fi

    read -p "请输入您的成绩(0-100):" fs
    if [ $fs -ge 0 -a $fs -lt 60 ]
    then
    echo "$fs ,不合格"
    elif [ $fs -ge 60 -a $fs -lt 70 ]
    then
    echo "$fs,合格"
    elif [ $fs -ge 70 -a $fs -lt 85 ]
    then
    echo "$fs,良好"
    elif [ $fs -ge 85 -a $fs -le 100 ]
    then
    echo "$fs,优秀"
    else
    echo "分数无效"
    fi

     =================================================

    实例:Shell脚本部署YUM仓库服务

    服务端运行脚本:

    [root@localhost ~]# vim yumftp.sh

    mount /dev/sr0 /media/cdrom &>/dev/null
    if [ $? -eq 0 ]
       then
           [ -d $DIR ] || mkdir -p $DIR
           echo "正在从光盘拷贝数据到本地,请耐心等待"
            cp -rf /media/cdrom/* $DIR
           echo "$DIR 内容已拷贝完成!"
    else
           echo "请先放入centos7的光盘"
          exit
    fi
    
    echo "安装并启动vsftpd服务"
    read -p "请输入本机提供的ftp服务器ip地址:" IP
    rpm -qa | grep vsftpd &>/dev/null
    [ $? -ne 0 ] && rpm -i /media/cdrom/Packages/vsftpd-* &>/dev/null
    /etc/init.d/vsftpd start &>/dev/null &&chconfig on && echo "ftp服务已经开启"
    
    echo "设置本地yum源并建立缓存"
    mkdir -p $DIR/bak &>/dev/null
    mv $DIR2/* $DIR/bak &>/dev/null
    echo -e "[ftp]
    name=centos7
    baseurl=ftp://192.168.200.115/centos7
    gpgcheck=0
    enabled=1" > $DIR2/ftp.repo
    yum clean all &> /dev/null
    yum makecache &>/dev/null
    echo "ftp源的yum仓库已建立"

    客户端运行脚本:

    [root@ns2 ~]# vim clientyumftp.sh

    #!/bin/bash
    DIR2=/etc/yum.repos.d/
    read -p "请输入ftp服务器的ip地址:" IP
    ping -c 2 -i 0.1 -W 2 $IP &>/dev/null
    if [ $? -eq 0 ]
    then
        mkdir -p $DIR2/bak &>/dev/null
        mv $DIR2/* $DIR2/bak &>/dev/null
        echo -e "[ftp]
    name=centos7
    baseurl=ftp://192.168.200.115/centos7
    gpgcheck=0
    enabled=1" > $DIR2/ftp.repo
    yum clean all &>/dev/null
    yum makecache &>/dev/null
    echo "ftp源yum仓库已建立"
    else
         echo "ftp服务器链接失败"
    fi

    服务端测试:

    [root@localhost ~]# ./yumftp.sh 
    挂载光盘。将光盘内容复制到本地/var/ftp/centos7目录下
    正在读取光盘
    正在从光盘拷贝数据到本地,请耐心等待
    /var/ftp/centos7 内容已拷贝完成!
    安装并启动vsftpd服务
    请输入本机提供的ftp服务器ip地址:192.168.200.115
    设置本地yum源并建立缓存
    ftp源的yum仓库已建立

    客户端测试:

    [root@ns2 ~]# vim clientyumftp.sh

    [root@ns2 ~]# ./clientyumftp.sh 
    请输入ftp服务器的ip地址:192.168.200.115
    ftp源yum仓库已建立

    [root@ns2 ~]# scp 192.168.200.115:root/cli* ./
    The authenticity of host '192.168.200.115 (192.168.200.115)' can't be established.
    ECDSA key fingerprint is SHA256:WhmwOa3kotMQL6wth0B3Q/nBCAytuC2kBCTpEA4GJoQ.
    ECDSA key fingerprint is MD5:b4:3d:85:4d:b0:66:16:f2:7b:3e:fb:50:d7:0e:b4:0f.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '192.168.200.115' (ECDSA) to the list of known hosts.
    root@192.168.200.115's password:
    scp: root/cli*: No such file or directory
    [root@ns2 ~]# ls
    anaconda-ks.cfg clientyumftp.sh initial-setup-ks.cfg 公共 模板 视频 图片 文档 下载 音乐 桌面
    [root@ns2 ~]# ./clientyumftp.sh
    请输入ftp服务器的ip地址:192.168.11.11
    ftp服务器链接失败
    [root@ns2 ~]# ./clientyumftp.sh
    请输入ftp服务器的ip地址:192.168.200.115
    ftp源yum仓库已建立

     
  • 相关阅读:
    Chrome 和 FireFox 查看伪类:active,:hover,:focus样式
    为什么需要清除浮动float,及解决办法
    Chrome 控制台使用之配置网速
    Vue 和 浏览器 之Vue项目在浏览器中运行并使用debug
    CSS里不为人知的秘密(02)之常见属性使用
    ImageMagick 简单使用
    php 使用gmail发送邮件之---gmail授权申请开通
    vue复习知识记录【2】 v-if v-show vfor
    vue复习知识记录【1】 绑定字段、绑定事件、使用方法、使用计算
    解决Selenium下使用Firefox的findElement速度非常慢的问题
  • 原文地址:https://www.cnblogs.com/CMX_Shmily/p/11445190.html
Copyright © 2011-2022 走看看