zoukankan      html  css  js  c++  java
  • (7)case语句

    (1)case 语法

    case "变量" in
    模式1) 命令序列1 ;;
    模式2)	命令序列2 ;;
    模式3)	命令序列3 ;;
    *)	无匹配后命令序列
    esac
    

    (2)多系统配置yum源

    #!/bin/bash 
    cat << EOF
    1.install Centos5 yum repo
    2.install Centos6 yum repo
    3.install Centos7 yum repo
    EOF
    clear_cache() {
    	yum clean all
        yum makecache
    }
    [ -d /etc/yum.repos.d/bak/ ] || mkdir /etc/yum.repos.d/bak
    mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/ &>/dev/null
    read -p "please input a number ,eg 1|2|3 ...." num
    case "$num" in
            1)
            wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
    		clear_cache
            ;;
            2)
            wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
    		clear_cache
            ;;
            3)
            wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    		clear_cache
            ;;
            *)
            echo "error number!"
    esac
    

    (3)删除用户

    #!/bin/bash
    #case 判断删除用户
    read -p "please input username:" user
    id $user &>/dev/null
    if [ $? -ne 0 ];then
            echo "no such user:$user!"
            exit 1
    fi
    read -p "Are you sure?[y|n]: " action
    case "$action" in
            y|Y|yes|YES)
                    userdel -r $user
                    echo "$user is deleted"
                    ;;
            *)
                    echo "error"
    esac
    

    (4)模拟jumpserver

    #!/bin/bash
    trap "" HUP INT OUIT TSTP
    web01=192.168.111.201
    web02=192.168.111.202
    clear			
    while true
    do
            cat <<-EOF
            +-----------------------------------+
            |         jumpserver                |
            |         1)connect---web01         |
            |         2)connect---web02         |
            |         3)out                     |
            +-----------------------------------+
            EOF
            echo -en "e[1;32mplease input a number: e[0m"
            read  num
            case "$num" in
                    1)
                    ssh $web01
                    ;;
                    2)
                    ssh $web02
                    ;;
                    3)
                    break
                    ;;
                    *)
                    echo "error"
            esac
    done
    
    trap :运行脚本的时候无法使用crtl+c退出脚本
    clear 每次登陆到后端服务器退出之后清屏
    cat :打印菜单
    echo -en "e[1;32mplease input a number: e[0m" :提示用户输入的时候打印颜色,-n表示下面的read用户输入不换行
    ,密钥登录:ssh-keygen:生成跳板机的公钥和私钥 ssh-copy-id  把跳板机的公钥发送给后端服务器
    客户端登录到跳板机上每次启动这个脚本需要把脚本放入到~/.bashrc文件下面,脚本需要给执行权限
    

    (5)系统工具箱

    #!/bin/bash
    #system_toolbox
    menu() {
    
            cat <<-EOF
            +==========================================+
            |       h.help                             |
            |       f.disk partition                   |
            |       d.filesystem mount                 |
            |       m.memory                           |
            |       u.system load                      |
            |       q.exit                             |
            +==========================================+
            EOF
    }
    menu
    trap "" HUP INT OUIT TSTP
    clear
    while true
    do
            menu
            echo -en "please enter the options you need:"
            read options
            case "$options" in
                    h) clear;menu ;;
                    f) df -Th ;;
                    d) fdisk -l ;;
                    m) free -m ;;
                    u) upload ;;
                    q) break ;;
                    "") ;;
                    *) echo -e "e[1;32merror options e[0m"
            esac
    done
    echo -e "e[1;32mfinish...... e[0m"
    

    (5)安装php

    #!/bin/bash
    menu() {
    echo "##############################"
    echo -e "	1 php5.6"
    echo -e "	2 php6.6"
    echo -e "	3 quit"
    echo "##############################"
    }
    . /server/scripts/php.sh
    install_php56() {
            php56
    }
    install_php66() {
            php66
    }
    menu
    while true
    do
            echo -ne "version[1-2]:" 
            read version
            case "$version" in
                    1) install_php56 ;;
                    2) install_php66 ;;
                    3) break        ;;
                    "") ;;
                    *) echo "error"
            esac
    done
    

    php.sh

    #!/bin/bash
    php56() {
            echo -e  "e[1;31minstall php5.6 is successe[0m"
    }
    php66() {
            echo -e  "e[1;33minstall php6.6 is suceesse[0m"
    }
    

    总结:把安装php的各种版本一个文件,文件里面是函数安装php各种版本的函数,然后在入口文件使用. /server/scripts/php.sh加载这个文件,在定义函数调用文件中的函数功能即可

  • 相关阅读:
    echarts .NET类库开源
    公司笔试题
    ASP.NET Word/Excel 权限问题
    ASP.NET XmlSerializer权限问题
    jQuery Ajax 处理 HttpStatus
    C#调用百度静态地图
    .NET和F#周报第35周-.NET 8月重大更新
    F#.NET周报 2018第34周-Ionide下载量100万
    字符串切分
    最近很火的一首小诗 You are in your TIME ZONE
  • 原文地址:https://www.cnblogs.com/lovelinux199075/p/8901791.html
Copyright © 2011-2022 走看看