(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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用docker部署jar包_docker run 参数

    用docker部署jar包_docker run 参数小小总结一、思路1、将docker容器中的指定文件夹挂载到宿主机上,更新jar包只需上传到宿主机指定路径,方便更新2、利用bash文件运行jar包,并构建该bash的镜像,代替构建直接运行jar包的镜像,利于镜像与jar包解耦。例如,app-1.0.0.jar升级到app-2.0.0.jar,只须更改bash文件的内容,而无须构建新的镜像。二、准备工作1、创建存放docker配置文件、jar包的文件夹在宿主机上,创建文件夹:/home/admin/app,用于存放bash文件和jar包。然

    2022年9月27日
    0
  • Mybatis实现*mapper.xml热部署-分子级更新

    Mybatis实现*mapper.xml热部署-分子级更新无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里以跳转到教程。需求:项目在开发阶段或是修复bug阶段,会有修改mybatis的mapper.xml的时候,修改一般情况都要重启才能生失效,如果是分布式项目重启有时会耗时很久,都是无尽的等待。如果频繁修改,那么时间都浪费到等待重启的过程。…

    2022年5月11日
    49
  • 【转载】一位软件工程师的6年总结

    【转载】一位软件工程师的6年总结

    2021年11月18日
    40
  • Windows中查看PowerShell版本和virbox版本,vagrant 版本

    Windows中查看PowerShell版本和virbox版本,vagrant 版本

    2021年10月28日
    43
  • InnoDB数据库隔离级别

    InnoDB数据库隔离级别事务隔离级别分为四种(级别递减):1、Serializable(串行化):最严格的级别,事务串行执行,资源消耗最大;2、REPEATABLEREAD(重复读):保证了一个事务不会修改已经由另一个事务读取但未提交(回滚)的数据。避免了“脏读取”和“不可重复读取”的情况,但不能避免“幻读”,但是带来了更多的性能损失。3、READCOMMITTED(提交读):大多数主流数据库的默认事…

    2022年5月18日
    30
  • loadrunner-11安装+激活成功教程+汉化(提供安装包,激活成功教程方式,汉化包)

    loadrunner-11安装+激活成功教程+汉化(提供安装包,激活成功教程方式,汉化包)loadrunner-11安装+激活成功教程+汉化(提供安装包,激活成功教程方式,汉化包)一、loadrunner-11安装下载地址: 链接:https://pan.baidu.com/s/10meUz5DfkS8WleLSOalCtQ 提取码:iw0p      由于LR11安装包三个多G,没办法上传到CSDN上,就用百度云去下载,注意下载时选择足够的盘符空间;      …

    2022年7月22日
    34

发表回复

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

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