0
点赞
收藏
分享

微信扫一扫

if语句多分支

SDKB英文 2023-04-17 阅读 50

if语句多分支


If  [ 条件判断1 ] ; then
 		commands
 elif  [ 条件判断2 ] ; then
 		commands
 elif  [ 条件判断3 ] ; then
 		commands
 		.......
 else
 		commands
 Fi

流程控制语句:case

  • 格式: 适用于多分支,是一个多选择语句


case     变量值     in
               模式1)
                      命令序列1
 		       ;;
               模式2)
                      命令序列2
                     ;;
                      ……
                      *)  
          ;;
                      默认命令序列
  esac

取值后面必须为单词in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;; 
 匹配中的值可以是多个值,通过“|”来分隔
 取值将检测匹配每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令
 它需要一个esac(就是case反过来)作为结束标记,圆括号,用两个分号表示该程序段结束。

hell中色彩的处理

shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用选项-e(可以用来识别我们的转义字符) 格式: echo -e “\033[背景颜色;文字颜色m 文字内容\033[0m” echo -e “\e[背景颜色;文字颜色m 文字内容\e[0m”

[root@nfs2 sh]# cat grade.sh
#!/bin/bash
read -p "输入你的分数:" grade
if [ $grade -lt 0 ] || [ $grade -gt 100 ]
then
        echo "error:输入错误"
        exit 1
elif  [ $grade -ge 85 ] && [ $grade -le 100 ]
then
        echo "你的分数是$grade,优秀."
elif [ $grade -ge 70 ] && [ $grade -le 84 ]
then
        echo "你的分数是$grade,合格。"
else
        echo "你的分数是$grade,不合格。"
fi

[root@nfs2 sh]# cat u15.sh
#!/bin/bash
read -p "输入一个字母:" key1
case $key1 in
a)
        ls
        ;;
b)
        ls -l
        ;;
c)
        ls -lh
        ;;
d)
        ls -a
        ;;
*)
        echo "error:xxxxxxxxx"
        ;;
esac

[root@nfs2 ~]# cat  /usr/lib/systemd/system/nginx.service
#!/bin/bash
case $1 in
start)
        pgrep -x nginx &> /dev/null
        if [ $? -eq 0 ]
        then
                echo "nginx sernice is already runing."
        else
                echo "will start nginx service."
                /usr/local/nginx/sbin/nginx
                if [ $? -eq 0 ]
                then
                        echo "sucessfule"
                fi
        fi
        ;;
stop)
        pgrep -x nginx &> /dev/null
        if [ $? -eq 0 ]
        then
                echo "will stop nginx service."
                /usr/local/nginx/sbin/nginx -s stop
        fi
        ;;
restart)
        pgrep -x nginx &> /dev/null
        if [ $? -eq 0 ]
        then
                echo "will stop nginx service."
                /usr/local/nginx/sbin/nginx -s stop
                /usr/local/nginx/sbin/nginx
        fi
        ;;
reload)
        pgrep -x nginx &> /dev/null
        if [ $? -eq 0 ]
        then
                echo "will stop nginx service."
                /usr/local/nginx/sbin/nginx -s reload

        fi
        ;;
status)
        pgrep -x nginx &> /dev/null
        if [ $? -eq 0 ]
        then
                echo "ngingx service is up."
        else
                echo "nginx service is down."
        fi
        ;;
*)
        echo "error:参数输入错误,请输入start|stop|restart|reload"
        ;;
esac

举报

相关推荐

0 条评论