shell条件测试(例题)

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

cd /root
read -p "请输入一个文件名" name
if [ -e $name ]
 then
echo "存在该文件"
if [ -x $name ]
 then
 echo "该文件有执行权限"
else
 echo "该文件没有执行权限"
fi
else
 echo "不存在该文件"
fi

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


read -p "请输入100米跑的秒数:" sec
if [ $sec -eq $sec ]
then
 echo "请输入正确的成绩"
if [[ $sec -gt 0 && $sec -le 10 ]]
then
  echo "进入决赛"
read -p "请输入性别:" sex
if [ $sex == '男' ]
 then
   echo "加入男性组"
elif [ $sex == '女' ]
 then
  echo "加入女性组"
 else
 echo "请输入正确性别"
fi
else [ $sec -gt 10 ]
  echo "淘汰"
fi
else
 echo "请重新输入"
fi

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

read -p "请输入文件夹" name
tar -xf $name -C /opt && a="*.gz"
tar -xf $name -C /opt && a="*.bz2"
case $a in
*.gz)
 echo "解压的.gz"
;;
*.bz2)
 echo "解压的.bz2"
;;
*)
echo "请选择正确的压缩包"
esac


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

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


read -p "请输入一个数:" num
 if [ $num -eq $num ]
 then
  echo "${num}输入的是整数"
 if [ $(($num%2)) -eq 0 ]
  then
  echo "${num}是偶数"
 else
  echo "${num}是奇数"
 fi
 else
  echo "${num}输入的不是整数"
fi

6.用if 语句判断主机是否存活.保存到/opt/hosts.txt 
ping -c 5

read -p "请输入一个IP地址" ip
ping -c 5 $ip
if [ $? -eq 0 ]
 then
 echo "ip地址ping通"
 echo $ip >> /opt/host.txt
else
 echo "ip地址ping不通"
fi

7.用case语句控制 firewalld start|stop|restart|status 来管理firewalld服务,
要求如果命令选项不对,则提示输入不正确: {start|stop|status|restart}”。

read -p "请输入命令" a
 case $a in
restart)
  echo "重启防火墙服务"
 systemctl restart firewalld
;;

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

status)
  echo "防火墙状态"
 systemctl status firewalld
;;

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

*)
 echo "输入错误"
esac

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值