shell脚本条件语句练习

Posted kiroct

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本条件语句练习相关的知识,希望对你有一定的参考价值。

1、检查家目录中的test.sh 是否存在,并检查是否有执行权限

#!/bin/bash
[ -f ~/test.sh ]
if [ $? -eq 0 ]
then
 echo "test.sh 文件存在,下面检查文件权限"
 cd ~;
 ls -l | grep "test.sh"
else
 echo "文件不存在"
fi

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

#!/bin/bash
read -p "输入你的秒数:" S
#S是秒数的变量
if [ $S -gt 0 -a $S -le 10 ]
then
 echo "----------------------------------"
elif [ $S -gt 10 ]
then
 echo "很遗憾你被淘汰了"
 exit 1
else
 echo "请输入正确的数字"
 exit 1
fi

read -p "恭喜你进入选拔赛,请输入你的性别:" A
#A是性别的变量
if [ $A = 男 ]
then
 echo "恭喜你进入男子选拔赛"
elif [ $A = 女 ]
then
 echo "恭喜你进入女子选拔赛"
else
 echo "请输入正确的性别"
 exit 1
fi

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

#!/bin/bash
echo "正在查找data目录下的压缩文件包";
name=` find /data -name "*.tar.gz" -o -name "*.tar.bz2" `

case $name in

*.tar.gz)
 tar -zxvf $name -C /opt
 ;;

*.tar.bz2)
 tar -jxvf $name -C /opt
 ;;

*)
 echo "当前目录没有压缩包"
esac

4、提示用户输入内容,使用if语句判断输入的内容是否为整数。再判断输入的内容是奇数还是偶数。

#!/bin/bash

read -p "请输入你的数字" num

( expr $num + 0 ) &> /dev/null
if [ $? -eq 0 ]
then
 echo "这个数为整数"
elif [ $num -eq  0 ]
then
 echo "这个数为整数"
else
 echo "你输入的不是整数"
 exit 1
fi
f=$( expr $num % 2 )
if [ $f -eq 0 ]
then
 echo "你输入的是偶数"
else
 echo "你输入的是奇数"
fi

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

#!/bin/bash
ping -c 3 -i 0.5 -w 2 $1 &> /dev/null
if [ $? -eq 0 ]
then
 echo "$1 在线"
else
 echo "$1 不在线"
fi

6、使用case语句来控制防火墙

#!/bin/bash
#chkconfig 2345 99 20
read -p "
欢迎使用脚本防火墙
请输入:start、stop、restart、status
来完成对防火墙的管理。
: " A
#A为输入的命令

case $A in 
start)
 systemctl start firewalld
  ;;
stop)
 systemctl stop firewalld
  ;;
restart)
  systemctl restart firewalld
  ;;
status)
 systemctl status firewalld
  ;;
*)
 echo "use_age: $0 start|stop|restart|status"
 esac

以上是关于shell脚本条件语句练习的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本小练习

shell脚本编程进阶练习题

shell脚本8-16

Shell编程Shell中多分支case条件语句

脚本语句介绍和练习题一

SHELL脚本编程进阶