Linux之Shell编程(10)--Shell流程控制语句实例演示

Posted 菠萝印象威

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux之Shell编程(10)--Shell流程控制语句实例演示相关的知识,希望对你有一定的参考价值。

一.case … esac语句

和其它语言的 switch … case语句类似,case … esac也是选择语句,每个 case用 ) 开始,用 ;; 表示break,表示执行结束,跳出整个 case … esac 语句,语法格式如下:

case var in
	选择模式1)
    command1
    command2
    ...
    commandN
    ;;
	选择模式2)
    command1
    command2
    ...
    commandN
    ;;
esac

实例演示case … esac

#!/bin/bash

i=10
case $i in
    5) echo 'i= 5'
    ;;
    10) echo 'i= 10'
    ;;
    15) echo 'i = 15'
    ;;
 esac

在这里插入图片描述
结果:
在这里插入图片描述

如果都不满足条件,那么会直接跳出语句。
在这里插入图片描述
结果:
在这里插入图片描述
或者设定都不满足的判断语句,例如:
在这里插入图片描述
在这里插入图片描述

二.break,continue语句

Shell里可以使用continue和break语句来中断执行程序。
1.break语句
break命令是跳出所有循环,并且终止执行后面的所有循环。

break语句实例演示

#!/bin/sh
i=10
for k in 1 2 4 9 11
do
        if [ $i -eq $k ];then
                echo "i=k"
                break
        else
                echo "i=$i"
                echo "k=$k"
        fi
done

在这里插入图片描述

结果:
在这里插入图片描述
多重循环中的break
在这里插入图片描述
结果:
在这里插入图片描述
break+数字表示跳出第几个循环。

2.continue语句
和其它语言的continue语句类似continue命令不会跳出所有循环,仅仅跳出当前循环
在这里插入图片描述

#!/bin/sh
i=10
for k in 1 2 10 3 4
do
        if [ $i -eq $k ];then
                echo "i=k"
                continue
        else
                echo "i=$i"
                echo "k=$k"
        fi
done

结果:
在这里插入图片描述
如果改为break,结果为:
在这里插入图片描述

在这里插入图片描述
很明显可以看出,break是直接终止整个循环,而continue是跳出当前循环,继续执行。

三.until语句

until 循环执行一系列命令直至条件为 true 时停止。
在这里插入图片描述

#!/bin/sh
i=10
until [ $i = 5 ]
do
        echo $i
        i=`expr $i - 1`
done

结果:
在这里插入图片描述

执行i = i-1,直到i=5

以上是关于Linux之Shell编程(10)--Shell流程控制语句实例演示的主要内容,如果未能解决你的问题,请参考以下文章

linux之Shell编程--Shell流程控制语句实例演示

Linux之Shell编程(10)--Shell流程控制语句实例演示

10-1做数据分析,要不要掌握Linux系列:shell编程之变量!

Linux之Shell编程(14)--sed关键字详解演示

Linux之Shell编程(14)--sed关键字详解演示

linux之Shell编程--Shell基本运算符之逻辑运算符和布尔运算符实例演示