归纳 if/case语句 shell脚本练习

if、case语句脚本练习

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

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

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

4.提示用户输入内容,使用if 语句判断输入的内容是否为整数。

5.根据上题再判断输入的内容是奇数还是偶数。

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

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

 

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

#!/bin/bash

if [ -f ~/test.sh ];then
  echo "该文件存在"
    if [ -x ~/test.sh ];then
      echo "test.sh 文件有可执行权限"
    else
      echo "test.sh 文件没有可执行权限"
    fi
else
  echo "test.sh 文件不存在"
fi

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

#!/bin/bash

read -p "请输入100米赛跑的秒数:" ms

if [ $ms -gt 0 -a $ms -le 10 ] &> /dev/null
 then
        echo "你进入选拔赛!"

read  -p "请输入你的性别:" xb

if [ $xb = ''  ]
then
        echo "你已经进入男生组!"
elif [ $xb = '' ]
then
        echo "你已经进入女子组!"
else
        echo "请正确输入!"
fi

elif [ $ms -gt 10 ] &> /dev/null
 then
        echo "淘汰!"
else
        echo "请正确输入!"
fi

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

#!/bin/bash

case $1 in
*.tar.gz)
   if [ -f $1 ];then
      tar -zxvf $1 -C /opt &> /dev/null
   else
      echo "$1 不存在"
   fi
;;
*.tar.bz2)
   if [ -f $1 ];then
      tar -jxvf $1 -C /opt &> /dev/null
   else
      echo "$1 不存在"
   fi
;;
*)
   echo "文件输入错误"
esac

缺实验

4.提示用户输入内容,使用if 语句判断输入的内容是否为整数。

#!/bin/bash

read -p "请输入数字:" num

expr $num + 1 &> /dev/null
  if [ $? -eq 0 ];then
  echo "您输入的$num 为整数"

  else
  echo "您输入的$num 不是整数"

fi

5、根据第四题判断输入的内容是奇数还是偶数。

#!/bin/bash

read -p "请输入数字:" num

expr $num + 1 &> /dev/null
if [ $? -eq 0 ];then
  echo "您输入的$num 为整数"

  else
     echo "您输入的$num 不是整数"

  fi

  expr ${num} % 2 &> /dev/null
if [ $? -ne 0 ];then
  echo "你输入的$num 是一个偶数"

else
  echo "您输入的$num 是一个奇数"

fi

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

#!/bin/bash

ping -c 3 -i 1 -w 3 $1 &> /dev/null

if [ $? -eq 0 ];then
  echo "$1 is online"

else
  echo "$1 is offline"

fi

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

#!/bin/bash

read -p "请输入您的命令:" firewalld
case $firewalld in

start)
systemctl start firewalld
  echo "防火墙已开启"
;;

stop)
systemctl stop firewalld
  echo "防火墙已关闭"
;;

status)
systemctl status firewalld
  echo "您目前的防火墙状态"
;;

restart)
systemctl restart firewalld
  echo "防火墙已重启"
;;

*)
  echo "用法: $0 {start|stop|status|restart}"
;;

esac

 

posted @ 2021-08-01 18:21  YhtWeirdo  阅读(77)  评论(0编辑  收藏  举报