利用if和case语句综合演练shell脚本

内容预知

 实验一

实验二 

 实验三

 实验四

 实验五

 实验六


 实验一

 检查用户家目录中的 test.sh 文件是否存在,并且检查是否有执行权限

#!#/bin/bash


#判断test文件是否存在
[   -e  /root/test.sh   ] &>/dev/null
if [ $?  -eq 0   ];then
    echo "test.sh 文件是存在的!"
#判断test.sh文件是否拥有执行权限
   [  -x  /root/test.sh    ] &>/dev/null
   if [ $? -eq  0   ] ; then
      echo "tesh.sh文件拥有执行权限"
   else
      echo "test.sh文件没有执行权限"
   fi
else
   echo "tesh.sh 文件并不存在!"
fi
~                      

 结果:

实验二 

 提示用户输入100米赛跑的秒数,要求判断秒数大于0且小于等于10秒的进入选拔赛,大于10秒的都淘汰,如果输入其它字符则提示重新输入;进入选拔赛的成员再进一步判断男女性别,男生进男生组,女生进女生组,如果输入错误请提示错误

#!/bin/bash

#根据成绩选拔
read -p "请输入你本次100米赛跑的比赛使用的时间:"  num

if [  $num -le 10   ]  &&   [ $num -gt 0  ] ;then
    echo "恭喜你,进入到小组选拔!"
#根据性别分组
    read -p "请选择您本人的性别(1.代表男性   2.代表女性):" sex
    if  [  $sex -eq 1   ];then
       echo  "您已成功加入男生组!"
    elif [ $sex -eq  2   ];then

       echo  "您已成功加入女生组!"
    else
       echo  "请在规定的范围内进行选择,谢谢配合!"
    fi

elif [ $num -le 0   ];then
    echo "输入有误!"
else
   echo  "很遗憾,您没有通过考核!"
fi
                                         

 

 

测试:

 

 实验三

 用case语句解压根据后缀名为 .tar.gz 或 .tar.bz2 的压缩包到 新建  /apps目录

#!/bin/bash

read -p "请输入要解压的文件名:"  name
case $name in

read -p "请输入要解压的文件名:"  name
case $name in
*.tar.gz)
 tar -zxvf $name  -C /apps &>/dev/null
if [  $? -eq 0  ];then
   echo "$name 已经解压成功"
else
   echo "$name 相关的压缩包不存在!"
fi
;;

*.tar.bz2)
 tar -jxvf $name  -C /apps &>/dev/null
if [  $? -eq 0  ];then
   echo "$name 已经解压成功"
else
   echo "$name 相关的压缩包不存在!"
fi
;;

*)
echo "文件输入错误!"
                                      

结果测试:
 

 实验四

用if 语句判断主机是否存活

#!/bin/bash
#用if 语句判断主机是否存活
read -p "请输入主机ip:" i
ping $i -c 2 -w 3 &> /dev/null
  if [ $? -eq 0 ];then
    echo "主机存活"
  else
    echo "主机不存活"
  fi

测试:

 

 实验五

 用case语句在/etc/init.d/目录中写一个firewalld脚本,并加入到系统服务管理中(#chkconfig: - 99 20)
使能够使用 service firewalld start|stop|restart|status 来管理firewalld服务,
要求如果命令选项不对,则提示 “用法: $0 {start|stop|status|restart}”。

脚本编写: 

#!/bin/bash
#chkconfig: - 99 20 
echo "$0 脚本功能:Start 开启防火墙   stop 关闭防火墙   restart 重启防火墙 status查看防火墙的状态  "
read -p "请输入您想执行的命令操作:"  order
case $order in

"start")
echo "开启防火墙中...."
systemctl start firewalld
if [ $?  -eq 0   ];then
  echo "防火墙启动成功!"
else
  echo " 防火墙启动失败!"
fi

;;


"stop")
echo "关闭防火墙中......."
systemctl stop firewalld

if [ $?  -eq 0   ];then
 echo "防火墙关闭成功!"
else
  echo " 防火墙关闭失败!"
fi
;;



"restart")
echo "重启防火墙中......"
systemctl restart firewalld
if [ $?  -eq 0   ];then
  echo "防火墙重启成功!"
else
  echo " 防火墙重启失败!"
fi
;;

"status")
echo  "查看防火墙的服务状态中"
systemctl status firewalld
;;


*)
echo  "输入有误,请输入 $0 脚本的命令: {start|stop|status|restart}"

;;
esac




                                  

 

 加入服务管理操作:

[root@localhost init.d]#chmod +x firewalld 
[root@localhost init.d]#chkconfig --add firewalld 

测试:

 

 实验六

 监控cpu的使用率

#!/bin/bash

a=$(top -b -n1 | grep '%Cpu(s):' | awk -F, '{print $4}' | awk '{print $1}')
USED_CPU=$(echo "100-$a" | bc)
echo "当前CPU的使用率为${USED_CPU}%"
                                     

测试:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值