Linux中shell分支结构

目录

分支语句(if和case)

1、if语句

1.1 单分支

 1.2 双分支

1.3  多分支

 2、case语句


和java,php等语言一样,shell中也包含流程控制语句,像我们经常使用的if分支、for循环等等,不同的是在shell中流程控制不能为空,而在java中是可以的,如下:

if(条件){

        //语句

}else{

        //这里可以为空

}

上面这个在else中没有执行任何语句,java、php等可以这么写,而在shell中不能这么写,如果else分支没有执行语句,就不要写这个else。

 言归正传,现在我们就来学习吧!

分支语句(if和case)

知识是枯燥的,我们要学会苦中作乐,比如看一个段子:

        老婆给当程序员的老公打电话:下班顺路买一斤包子带回来,如果看到卖西瓜的,买一个。当晚,程序员老公手捧一个包子进了家门…老婆怒道:你怎么就买了一个包子?!老公答曰:因为看到了卖西瓜的。

        把程序员老婆的话当作一段需求分析一下吧。买一斤包子是一个确定无疑的需求项,无论后面是什么情况什么条件,前面这一斤包子是肯定要买的。看到卖西瓜的是一个条件判断,后面“买一个”是一个模糊不清的需求项,买一个什么呢?需求里没说啊。客户把这个当作开发人员默认了解的内容了。可是作为一个成熟合格的程序员,该老婆的丈夫应该马上跟进确认需求“买一个什么?”,要不然程序可怎么写呢?所以笑话里该程序员是不合格的,起码是不积极不负责的。在没有明确需求的情况下,他只能按照自己的理解来完成工作了。那比较可能的结果就有如下几种:

1 看到卖西瓜的,买一个西瓜

        如果 看到卖西瓜的

                那么

                买一个西瓜

        否则

                买一斤包子

2 看到卖西瓜的,买一个包子

        如果 看到卖西瓜的

                那么

                买一个包子

3 看到卖西瓜的,买一个卖西瓜的

4 看到卖西瓜的,买一个老婆一直想买的东西

5 看到卖西瓜的,随便买一个东西

上述1和2下面的条件汉字描述称之为“伪代码”,也是属于条件表达式的语法。

现在没那么苦了吧,那我们趁着甜头抓紧学习吧 

1、if语句

用于根据条件执行不同的命令或代码块

1.1 单分支

语法1(一个条件):

if condition

then

    command1

    command2

    ...

fi

condition是一个条件表达式,根据表达式结果,决定是否执行command1、command2命令

[root@localhost ~]# vi 1.sh 
#!/bin/bash
if [ 1 -eq 0 ]        #条件判断1是否等于0
then
    echo "你很帅"        #因为条件为假,所以这条命令不执行
fi

if [ 1 -eq 1 ]        #条件判断1是否等于1
then
    echo '我很帅'        #条件为真,这条命令执行
fi

 1.2 双分支

语法2(两个条件):

if condition

then

    command1

    command2

    ...

else

    command

fi

 双分支中多了一个else,当if中条件不满足时就会执行else中的命令,通俗点就是:

if如果怎么样那就怎么样,else否则就怎么样

[root@localhost ~]# vi 2.sh
#!/bin/bash
if [ 1 -eq 0 ]
then 
    echo '你很帅'
else
    echo '但还是没我帅'
fi

 上面案例中,犹豫if条件1等于0为假,所以直接跳过if,进入到else中,输出【...没我帅】

1.3  多分支

语法3(多个条件):

if condition1

then

    command1

elif condition2

then

    command2

else

    commandN

fi

上述语法条件又多了,当然还能更多条件判断,表示不满足if条件,那就看看elif是否满足,还是不满足继续往后面看,直至都不满足时执行else

[root@localhost ~]# vi 3.sh
#!/bin/bash
read -p '请输入考试分数:' score

#通过多分支来判断分数级别
if [ $score -ge 90 ]
then 
    echo '优秀'
elif [ $score -ge 80 ]
then
    echo '良好'
elif [ $score -ge 70 ]
then
    echo '中等'
elif [ $score -ge 60 ]
then
    echo '及格'
else
    echo '不及格'
fi

上述案例通过输入分数来判定级别,输入85,满足多分支中的第二个条件,所以级别为良好

 以上就是if分支的基本语法,我们会发现不管时单分支、双分支还是多分支,最后都会有个fi表示结束,这个不要省略哦,不然表示你当前的if只有开始,没有结束,切记切记!

 2、case语句

用于在一组值中进行选择,并执行相应的命令或代码块,一般用来做等值判断。

 语法:

case expression in

        pattern1)

                # 执行语句块1

                ;;

        pattern2)

                 # 执行语句块2

                ;;

        pattern3)

                # 执行语句块3

                ;;

        *)

                 # 执行默认语句块

                ;;

esac

【说明】

expression是需要匹配的表达式,根据匹配的结果执行相应的语句块。

pattern1pattern2等是用来进行匹配的模式,可以使用通配符,后面必须以 右圆括号)表示此case分支的开始。

;;两个分号表示break,即执行结束,跳出整个 case ... esac 语句。

esac(就是 case 反过来)作为结束标记。

[root@localhost ~]# vi 4.sh
#!/bin/bash
echo '功能[1查看信息,2修改信息,3删除信息,4添加信息]'
echo '您选择的功能是:' 
read num
case $num in
    1) echo '查看信息'
    ;;
    2) echo '修改信息'
    ;;
    3) echo '删除信息'
    ;;
    4) echo '添加信息'
    ;;
    *) echo '请输入正确数字1-4'
    ;;
esac

输入5,回执行通配符*,类似于if多分支中的else,也就是所有条件都不满足时,默认执行的一个,当然也可以没有这个默认的

输入1-4之间数字

好了,到这里分支语句就说完了,抓紧练习吧 

能够给大家带来价值的话,给个三连哦😘,小的祝各位看官万福金安😊


⭐️徒手摘星,爱而不得,世人万千,再难遇我。⭐️ 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

世人万千丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值