(7)case语句[通俗易懂]

(7)case语句[通俗易懂](1)case语法(2)多系统配置yum源(3)删除用户(4)模拟jumpserver!/bin/bashtrap""HUPINTOUITTSTPweb01

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

(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

(7)case语句[通俗易懂]

#!/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 "\t1 php5.6"
echo -e "\t2 php6.6"
echo -e "\t3 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 success\e[0m"
}
php66() {
        echo -e  "\e[1;33minstall php6.6 is suceess\e[0m"
}

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168308.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 提高系统可用性的那些架构策略[通俗易懂]

    提高系统可用性的那些架构策略[通俗易懂]系统高可用面临的挑战有哪些?1.资源不可用在实际业务中,出现资源不可用的原因种类可能很多,有的概率很低,比如网线被挖断了,机房失火,地震等等导致网络不可用,有的概率相对来说很高比如服务器硬件资源不足,服务器故障等等。这些问题都可能会导致对应的资源不可用。2.资源不均衡由于系统架构设计的时候没有针对高并发和大流量进行可伸缩设计,导致无法应对并发很大的场景,出现系统瘫痪甚至崩溃。3.节点功能异常这种情况是最常见的,由于代码是人写的,bug和漏洞都是难免的,所以在实际业务中大概率会出现功能

    2022年7月13日
    29
  • 该伙伴事务管理器已经禁止了它对远程/网络事务的支持[通俗易懂]

    该伙伴事务管理器已经禁止了它对远程/网络事务的支持

    2022年1月26日
    49
  • PyQt5开发学习(一)–在Pycharm使用PyQt5

    PyQt5开发学习(一)–在Pycharm使用PyQt5安装PyQt5PyCharm对每个工程,都有独立的系统环境,工程需要的每个库,都可以安装在工程目录下,而不是安装在系统目录下。如果安装太慢,可以更改PIP的源,如下:清华:https://pypi.tuna.tsinghua.edu.cn/simple豆瓣:http://pypi.douban.com/simple/阿里:http://mirrors.aliyun.com/py…

    2022年8月26日
    9
  • 国内外手机号码正则表达式

    国内外手机号码正则表达式附上语言(文化)代码与国家地区对照表:国家/地区语言代码国家/地区语言代码:简体中文(中国) zh-cn 繁体中文(台湾地区) zh-tw 繁体中文(香港) zh-hk 英语(香港) en-hk 英语(美国) en-us 英语(英国) en-gb 英语(全球) en-ww 英语(加拿大) en-ca 英语(澳大利亚) en-au 英语(爱尔兰) en-ie 英语(芬兰) en-f

    2022年6月1日
    39
  • ROS远程控制(PC机+TX2进行ROS远程通讯)

    ROS远程控制(PC机+TX2进行ROS远程通讯)

    2020年11月8日
    277
  • 页面跳转的两种方式(转发和重定向)区别及应用场景分析「建议收藏」

    页面跳转的两种方式(转发和重定向)区别及应用场景分析「建议收藏」转发和重定向区别详解作为一名程序员,特别是javaweb开发的程序员,在使用servlet/jsp的时候,我们必须要知道实现页面跳转的两种方式的区别和联系:即转发和重定向的区别。1、RequestDispatcher.forward方法只能将请求转发给同一个WEB应用中的组件;而HttpServletResponse.sendRedirect方法不仅可以重定…

    2022年9月8日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号