#!/bin/bash
shname=`basename $0`free () {
/usr/bin/free -h | awk 'NR==2{print $7}'
}disk () {
/usr/bin/df -h | awk '/sd/{print $1"\t"$5}'
}ipaddr () {
ifconfig ens32 | awk 'NR==2{print $2}'
}select i in "内存" "磁盘信息" "IP地址" "退出"
docase $i in 内存 )free;;磁盘信息 )disk;;IP地址 )ipaddr;;退出 )exit;;* )echo "use $shname {1|2|3|4}";;esac
done
#!/bin/bash
installnginx (){#设置安装nginx的版本(可以自定义)
nginxlevel=nginx-1.20.1#判断是否以root用户执行此脚本
if [ $UID -ne 0 ];
thenecho "请使用Root用户执行$0"exit
fi#判断是否接入网络
ping baidu.com -c4 >/dev/nullif [ $? -ne 0 ];
thenecho "执行$0需要访问到互联网..."echo "请检查与互联网的连接后再试..."exit
fi#判断系统是否安装过nginx
exist=$(whereis nginx | awk '{print $2}')if [ ! -z "${exist}" ];
thenecho "您的系统已经部署过nginx了..."echo "或您的系统还有nginx残留文件..."echo "可以使用 "whereis nginx" 和 "find / -name nginx" 查找清空掉残留文件..."exit
fi#安装依赖环境
yum install -y gcc openssl-devel pcre-devel zlib-devel lsof wgetgroupadd -r nginx
useradd -r -g nginx -s /sbin/nologin -M nginx
mkdir -pv /var/tmp/nginx
wget -P /root http://nginx.org/download/"$nginxlevel".tar.gz
tar -zxvf /root/"$nginxlevel".tar.gz -C /root sleep 3
#编译安装
cd /root/"$nginxlevel"
./configure  --user=nginx  --group=nginx  --prefix=/usr/local/nginx  --conf-path=/etc/nginx/nginx.conf  --error-log-path=/var/log/nginx/error.log  --http-log-path=/var/log/nginx/access.log  --pid-path=/var/run/nginx/nginx.pid  --lock-path=/var/lock/nginx.lock  --with-http_stub_status_module  --with-http_ssl_module  --with-http_gzip_static_module  --with-pcre
make && make installsleep 3#删除无用文件和路径
rm -rf /root/"$nginxlevel" /root/"$nginxlevel".tar.gzsleep 3
#设置nginx开机自启动
echo "#nginx开机自启动" >>/etc/rc.d/rc.local
echo "mkdir -p /var/run/nginx && touch /var/run/nginx/nginx.pid" >>/etc/rc.d/rc.local
echo "/usr/local/nginx/sbin/nginx" >>/etc/rc.d/rc.local
#重载配置文件
chmod +x /etc/rc.d/rc.local#启动nginx
/usr/local/nginx/sbin/nginxif [ $? -eq 0 ];
thenecho "===============Nginx安装完毕==============="echo "================Nginx已启动================"
elseecho "===============Nginx安装失败==============="echo "=============请检查系统环境配置============="
fi}uninstallnginx (){dirnginx=$(whereis nginx | awk '{print $2}')
read -p "是否要卸载nginx 输入(y|n)确认! " answer
if [ ${answer} == y ];
then rm -rf /run/nginx /etc/nginx /var/tmp/nginx /var/log/nginx /usr/local/nginxsleep 5#清空系统启动脚本中带有"nginx"的行sed -i "/nginx/d" /etc/rc.d/rc.localsleep 2#杀掉nginx进程pkill nginxif [[ $? -eq 0 ]]; thenecho ""echo "==========nginx 卸载成功!=========="echo ""elseif [[ -z ${dirnginx} ]]; thenecho "您未安装nginx..."fifi
elif [ ${answer} == n ];
thenexit
elseecho "输入(y|n)确认!"exit
fi
}installredis (){#redis的编译安装
redislevel=6.2.7
exist=$(whereis redis | awk '{print $2}')fname=/root/redis-${redislevel}.tar.gz#判断是否以root用户执行改脚本
if [ $UID -ne 0 ];
thenecho "请用root用户执行$0"exit
fi#判断是否安系统是否装过redis
if [ ! -z "${exist}" ];
thenecho "您的系统已经部署过redis了..."echo "或您的系统还有redis残留文件..."echo "可以使用 "whereis redis" 和 "find / -name redis" 查找清空掉残留文件..."exit
fi#检测网络通信情况
ping baidu.com -c4 > /dev/null
if [[ $? -ne 0 ]];
thenecho "请检查网络连接情况后在执行$0..."exit
elseecho "网络连接检测..."echo "OK!"
fiecho "开始安装..."#安装基础环境
yum install -y gcc wget#判断目录下是否有这个文件没有就wget
if [[ ! -e ${fname} ]];
thenwget -P /root http://download.redis.io/releases/redis-${redislevel}.tar.gz#判断下载是否成功if [[ $? -ne 0 ]]; thenecho "=================redis软件包下载失败...================="echo "=============请查看软件包版本配置是否正确==============="echo ""exitfi
fi#解压至指定目录下
tar -zxvf /root/redis-${redislevel}.tar.gz -C /root
sleep 3cd /root/redis-${redislevel}
make && make install PREFIX=/usr/local/redis
#安装路径可以自定义
cp /root/redis-${redislevel}/redis.conf /usr/local/redis/bin/
#修改redis.conf配置文件允许后台启动
sed -i 's/daemonize no/daemonize yes/g' /usr/local/redis/bin/redis.conf
sleep 3
#加入系统启动项
echo "[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target" >/etc/systemd/system/redis.servicesleep 2
#删除无用的文件
rm -rf /root/redis-${redislevel} /root/redis-${redislevel}.tar.gz#启动redis服务
systemctl daemon-reload
systemctl enable redis.service
systemctl start redis.serviceif [[ $? -eq 0 ]];
thenecho ""echo "===============redis安装完毕==============="echo "================redis已启动================"echo ""
elseecho ""echo "=============redis安装失败请检查配置...==============="echo ""rm -rf /etc/systemd/system/redis.serviceexit
fi}uninstallredis (){read -p "确认要卸载redis吗? {y|n} " answerif [[ ${answer} == y ]]; thenwhereis redis | awk '{print $2}' | xargs rm -rfrm -rf /etc/systemd/system/redis.servicepkill redisif [[ $? -eq 0 ]]; thenecho "redis 卸载成功!"elseecho "redis 卸载失败!或您没有安装redis 请检查后再试"fi elif [[ ${answer} == n ]]thenexitelseecho "输入 y or n 来确认是否卸载!"fi
}PS3="输入1-6选择你要的服务: "
select i in "安装nginx" "卸载nginx" "安装redis" "卸载redis" "帮助" "退出脚本"
docase $i in安装nginx )installnginx;;卸载nginx )uninstallnginx;;安装redis )installredis;;卸载redis )uninstallredis;;帮助 )echo "$0 {1|2|3|4|5|6}";;退出脚本 )exit;;* )echo "$0 {1|2|3|4|5|6}"esac
done

Shell编程 Case 和 函数的小练习相关推荐

  1. shell编程--case判断

    case基础语法: 格式 case  变量名 in value1) command ;; value2) command ;; *) commond ;; esac 在case程序中,可以在条件中使用 ...

  2. Shell编程(一):小工具

    一.文本处理工具 1. grep工具 grep是**行**过滤工具:用于根据关键字进行行过 语法: # grep [选项] '关键字' 文件名 常见选项: OPTIONS:-i: 不区分大小写-v: ...

  3. shell编程 case语句

    case语句格式 # vi test.sh : echo "input : " read num echo "the input data is $num" c ...

  4. Linux Shell编程语句case

    Linux Shell编程case语句 case语句 case语句适用于需要进行多重分支的应用情况. case分支语句的格式如下:case $变量名 in模式1)命令序列1;;模式2)命令序列2;; ...

  5. gnu linux额外支持的运算符,《Shell编程从入门到精通》张昊-chap1-8

    缘起 20190314开始复习及学习吧: 张昊编著: 内容 目录 i(9/314) 全书11章 chap1 第1个Shell程序 1(13/334) 1.1.第一道菜 [echo.sh] #!/bin ...

  6. Shell编程基础语法

    1.Shell编程概述 Shell是一个命令行解释器,它接收应用程序或用户的命令,然后调用操作系统内核. Shell还是一个功能强大的编程语言,易编写.易调试.灵活性强. ①Linux系统提供的She ...

  7. shell编程之函数和case多条件分支语句

    shell编程之函数和case多条件分支语句 函数介绍 函数语法定义 通过函数编写功能脚本 case语句 case条件分支语句介绍 函数介绍 函数介绍: shell 中允许将一组命令集合或语句形成一段 ...

  8. linux shell编程控制结构:expr、let、for、while、until、shift、if、case、break、continue、函数、select 学习笔记

    SHELL编程一UNIX和Shell工具简介 什么是shell? shell只是一个程序,它在系统中没有特权.因此,有多个不同风格shell共同存在原因--Bourne Shell,Korn Shel ...

  9. shell编程之条件语句(文件测试,test命令,字符串和逻辑测试,if单支语句,if双支语句,if多支语句,case命令,用if写跑步小实验)

    文章目录 shell编程之条件语句 条件测试 test命令 整数值测试 free -m 提供了更简洁的查看系统内存使用情况: 字符串和逻辑测试 字符串 逻辑测试 一元运算符,二元运算符和三元运算符 i ...

最新文章

  1. 你所不知道的Python奇技淫巧
  2. 每个网页设计师应该知道的10条CSS规则
  3. Sublime Text 3 安装Package Control及配置Python环境
  4. 基于React Native和Ethers.js的电子钱包(三):Ethers.js
  5. 关于anaconda顺利安装之后,cmd提示conda不是内部命令的问题
  6. web.xml中如何配置Servlet文件
  7. mingW与cygwin 异同
  8. win7电脑0x000007b蓝屏怎么办
  9. 机器视觉的典型应用及领域分析
  10. Windows下架设SVN服务
  11. 【wpa_supplicant】driver如何告诉supplicant自己做的一些事情以及结果
  12. 数据治理:携程度假的数据治理实践
  13. 物联网的核心技能是什么?
  14. VB6 MsgBox 函数
  15. 快速云:关于云技术未来的六大趋势
  16. Java 经典设计模式-- 05.并发型模式
  17. 乐视网:截至2月已逾期金融机构借款类债务20.84亿元
  18. 中国FPGA芯片技术解析
  19. 音量调节器Music Equalizer1.9
  20. 西北工业大学发布消息,成立光电与智能研究院。

热门文章

  1. 微信小程序查看到评论
  2. 面试江湖:一招破解 Java 集合类面试题
  3. 机器学习练习记录(1):伪逆法、势函数、基于二次准则的H-K函数、感知器法
  4. [转载]VIM的列操作与宏录制
  5. python微博文本分析_Python 3.6实现单博主微博文本、图片及热评爬取
  6. ESP32使用外设RMT控制WS2812灯条
  7. 服务器被黑遭攻击,凌晨一点紧急预案逆袭!
  8. 国内三大多用户商城系统评测 多商户商城系统怎么选
  9. 酒店台式自助开房机-自助入住机介绍
  10. 使用windows电脑SSH客户端链接Iphone手机的sshd服务(免越狱)