需求1
检查用户家目录中的 test.sh 文件是否存在,并且检查是否有执行权限
# vim test1.sh
read -p "输入文件名:" num
if [[ -f ~/$num && $? -eq 0 ]]
then
if [[ -x ~/$num && $? -eq 0 ]]
then
echo "有执行权限"
else
echo "无执行权限"
fi
else
echo "不存在"
fi
# wq!
检验:
需求2
提示用户输入100米赛跑的秒数,要求判断秒数大于0且小于等于10秒的进入选拔赛,
大于10秒的都淘汰,
如果输入其它字符则提示重新输入;进入选拔赛的成员再进一步判断男女性别。
男生进男生组,女生进女生组,如果输入错误请提示错误(整数判断,小数判断 )
# vim test2.sh
read -p "请输入100米赛跑成绩,注意请输入整数:" grade
if [[ $grade -eq $grade ]] &> /dev/null
then
if [[ $grade -gt 0 && $grade -le 10 ]]
then
echo "跑步成绩符合0~10秒,进入选拔赛"
read -p "选拔赛成员性别判断(female/male):" gender
if [[ $gender == female ]]
then
echo "恭喜进入女生组"
elif [[ $gender == male ]]
then
echo "恭喜进入男生组"
else
echo "输入错误"
fi
else
echo "淘汰"
fi
else
echo "重新输入"
fi
# wq!
检验:sh test2.sh
需求3
用case语句解压根据后缀名为 .tar.gz 或 .tar.bz2 的压缩包到 /opt 目录
tar -zxvf、tar -jxvf
# vim test3.sh
read -p "请输入后缀名为.tar.gz或者.tar.bz2的压缩包名称:" a
case $a in
*.tar.gz)
tar -zxvf $a -C /opt
;;
*.tar.bz2)
tar -jxvf $a -C /opt
;;
esac
# wq!
验证:
需求4
提示用户输入内容,使用if 语句判断输入的内容是否为整数。判断范围0-100。
根据以上结果再判断输入的内容是奇数还是偶数。
# vim test4.sh
read -p "请输入整数数字" num
if [[ $num -eq $num ]] &> /dev/null
then
if [[ $num -ge 0 && $num -le 100 ]]
then
if [ $(($num%2)) -eq 0 ]
then
echo "偶数"
else
echo "奇数"
fi
else
echo "超过范围"
fi
else
echo "不是整数,结束"
fi
# wq!
验证:
需求5
用if 语句判断主机是否存活.保存到/opt/hosts.txt
ping -c 5 不显示ping的过程
# vim test6.sh
ping -c 5 $1 &> /dev/null
if [ $? -eq 0 ]
then
echo "主机ip 存活"
echo $1 >> /opt/host.txt
else
echo "主机ip 不存活"
fi
# wq!
# ping -p -a -c 5 $1也可用-p命令,不显示ping的过程
验证:
需求6
用case语句控制 firewalld start|stop|restart|status 来管理firewalld服务,
要求如果命令选项不对,则提示输入不正确: {start|stop|status|restart}”。
stop start status restart
# vim test7.sh
systemctl $1 firewalld
[[ $1 == start ]] && a="1"
[[ $1 == stop ]] && a="2"
[[ $1 == status ]] && a="3"
[[ $1 == restart ]] && a="4"
case $a in
1)
echo "开启"
;;
2)
echo "停止"
;;
3)
echo "状态"
;;
4)
echo "重启"
;;
*)
echo "输入不正确"
esac
# wq!
验证:
& a=“3”
[[ $1 == restart ]] && a=“4”
case $a in
1)
echo “开启”
;;
2)
echo “停止”
;;
3)
echo “状态”
;;
4)
echo “重启”
;;
*)
echo “输入不正确”
esac
wq!
``
验证: