case的小例子
创建一个shell的环境
vim case.sh
#! /bin/bash
# 提示输出
echo "1. 猜数字"
echo "2. 检测域名是否可以访问"
echo "3. 检测ip是否可以ping通"
#read -p "请输入您的选择: " num
# 加入循环
while true
do
# 提示输入
read -p "请输入您的选择: " num
# 加入条件
case $num in
1)
# 随机生成一个100以内的数字
n1=$(expr $RANDOM % 100)
echo $n1
i=0 # 定义一个变量
while true # 进入循环
do
read -p "请输入一个数字:" n2
let i++ # 累加
# 判断输入的数字是否和随机数相等
if [ $n2 -eq $n1 ];then
echo "真聪明,猜对了!"
echo "您共猜了$i次"
break
elif [ $n2 -gt $n1 ];then
echo "好遗憾,猜大了!"
elif [ $n2 -lt $n1 ];then
echo "好遗憾,猜小了!"
else
echo "请正确输入数字!"
fi
done
;;
2)
# 定义一个数组包含域名
a=(www.baidu.com www.kugou.com www.aabbcc.com www.tudou.com)
for i in ${a[*]} # 遍历输出域名
do
# 输出域名访问的状态码
code=`curl -I -o /dev/null -s -w %{http_code} $i`
echo $code
# 判断状态码是否是200
if [ $code -eq 200 ];then
echo "$a is good!"
else
echo "$a is bad!"
fi
done
;;
3)
# 定义一个数组包含ip地址
ip=(
192.168.30.171
127.0.0.1
172.10.1.1
172.10.30.2
)
for i in ${ip[*]} # 遍历ip数组
do
# 判断ip是否是192或127开头
if [[ $i =~ '192' ]] || [[ $i =~ '127' ]];then
echo "$i is ok!"
else
echo "$i is not ok!"
# 将不通的ip地址doos掉
iptables -I INPUT -ptcp -s $i -j DROP
fi
done
;;
esac
done