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仓库已建立

     
  • 相关阅读:
    一个简单的knockout.js 和easyui的绑定
    knockoutjs + easyui.treegrid 可编辑的自定义绑定插件
    Knockout自定义绑定my97datepicker
    去除小数后多余的0
    Windows Azure Web Site (15) 取消Azure Web Site默认的IIS ARR
    Azure ARM (1) UI初探
    Azure Redis Cache (3) 创建和使用P级别的Redis Cache
    Windows Azure HandBook (7) 基于Azure Web App的企业官网改造
    Windows Azure Storage (23) 计算Azure VHD实际使用容量
    Windows Azure Virtual Network (11) 创建VNet-to-VNet的连接
  • 原文地址:https://www.cnblogs.com/CMX_Shmily/p/11445190.html
Copyright © 2011-2022 走看看