0
点赞
收藏
分享

微信扫一扫

MySQL游标(cursor)定义及使用

潇湘落木life 2023-04-27 阅读 40

条件测试


if语句

单分支

双分支

多分支

case语句

实例

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

if [ -e ~/test.sh ]
then
        echo "存在test.sh"
        if [ -x ~/test.sh ]
                then echo "test.sh可执行"
        else echo "test.sh无执行权限"
        fi
else echo "不存在test.sh"
fi

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

read -p 'input second' second
if [ $second -eq $second ] &>/dev/null
 #用-eq排除非数字,由于输入非数字会输出错误报告,重定向到null设备
then
        if [ $second -gt 0 ] && [ $second -le 10 ] #大于0s小于等于10s
        then read -p 'input sexual(男女)' sexual
        if [ $sexual == "男" ]
                then echo "$second 晋级男组"
        elif [ $sexual == "女" ]
                then echo "$second 晋级女组"
        else echo "性别错误"
        fi
     else echo "出局 $second"
     fi
else echo "输入数字!"
fi


 

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

for name in *.tar.*
do
[[ $name == *.tar.gz ]] && a='gz'
[[ $name == *.tar.bz2 ]] && a='bz2'
case $a in
gz)
tar -xzvf $name -C /opt
;;
bz2)
tar -xjvf $name -C /opt
;;
*)
        echo "bad"
esac
done
        echo "complete"
read -p "请输入你要解压的文件:" file 
case $file in ky28.tar.gz
*.tar.bz2)
echo "正在解压bz2文件至opt目录中....."
tar -jxvf $file -C /opt
;;
 
*.tar.gz)
echo "正在解压gz文件至opt目录中....."
tar -zxvf $file -C /opt
;;
 
*)
echo "文件格式有误,请重新输入文件"

esac

 

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

read -p "input number" num
if [ $num -eq $num ] &>/dev/null
then
        echo "整数"
else
        echo "不是整数"
fi


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

read -p "input number" num
if [ $num -eq $num ] &>/dev/null
then
        echo '整数'
        if [ $(($num%2)) == 0 ]
        then echo "偶数"
        else echo "奇数"
        fi
else
        echo "不是整数"
fi


6.用if 语句判断主机是否存活
ping -c 5

[root@xue xue]# cat ping.sh
ping -c 5 192.168.80.101
if [ $? == 0 ]
then echo '存活'
else echo '不存活'
fi
ping -c 5 192.168.80.250
if [ $? == 0 ]
then echo '存活'
else echo '不存活'
fi


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

read -p "输入start stop status restart以操作防火墙" choose
case $choose in
start)
    service firewalld start
;;
stop)
    service firewalld stop
;;
status)
    service firewalld status
;;
restart)
    service firewalld restart
;;
*)
    echo "用法: $0 {start|stop|status|restart}"
esac

 

举报

相关推荐

0 条评论