您的位置:

Shell脚本中的continue

一、continue的作用及用法

在Shell脚本中,continue语句用于跳过当前循环中的剩余语句,进入下一次迭代。当程序执行到continue语句的时候,它会直接跳过后面的所有语句,开始下一次循环。continue语句通常在if语句或者case语句中使用。

continue语句的语法如下:

continue [n]

其中,n表示跳过多少次循环。如果n没有指定,则默认为1。

下面是一个continue的示例,该示例在for循环中使用continue语句:

#!/bin/bash
for i in 1 2 3 4 5
do
    if [ $i == 3 ]
    then
        continue
    fi
    echo "Iteration number: $i"
done

运行上述代码,输出如下:

Iteration number: 1
Iteration number: 2
Iteration number: 4
Iteration number: 5

二、使用continue跳过多层循环

在Shell脚本中,continue语句还可以跳过多层循环。这种情况下,continue语句需要指定一个整数参数,表示跳过多少层循环。

下面是一个示例,该示例在两层循环中使用continue语句:

#!/bin/bash
for i in 1 2 3
do
    for j in 1 2 3
    do
        if [ $i == 2 -a $j == 2 ]
        then
            continue 2
        fi
        echo "i is $i, j is $j"
    done
done

运行上述代码,输出如下:

i is 1, j is 1
i is 1, j is 2
i is 1, j is 3
i is 2, j is 1
i is 3, j is 1
i is 3, j is 2
i is 3, j is 3

在上述示例中,如果$i等于2且$j等于2,则continue语句将会跳过两层循环。

三、使用continue跳出无限循环

在Shell脚本中,使用while语句或者for语句可以创建无限循环。如果不加以控制,则该循环将一直执行下去。continue语句也可以用于跳出无限循环。

下面是一个示例,该示例使用while循环创建了一个无限循环,当输入quit时,程序将跳出while循环:

#!/bin/bash
while :
do
    read input
    if [ $input == "quit" ]
    then
        break
    fi
    if [ $input == "continue" ]
    then
        continue
    fi
    echo "Input is $input"
done

运行上述代码,输出如下:

hello
Input is hello
continue
5
Input is 5
quit

在上述示例中,如果输入是continue,则程序使用continue语句跳过当前循环。如果输入是quit,则程序使用break语句跳出循环。

四、使用continue提高脚本效率

在Shell脚本中,使用continue语句可以提高脚本效率。

下面是一个示例,该示例使用continue语句来提高脚本效率:

#!/bin/bash
for i in 1 2 3 4 5
do
    if [ $i == 3 ]
    then
        continue
    fi
    echo "Iteration number: $i"
done

上述示例中,使用continue语句跳过$i等于3的循环,这样可以减少循环次数,提高脚本效率。

五、小结

通过本文对Shell脚本中的continue语句的介绍和示例,我们了解了continue语句的作用和用法。continue语句通常在if语句或者case语句中使用,可以用于跳过当前循环,进入下一次迭代。如果指定了参数,则可以跳过多层循环。同时,continue语句还可以用于跳出无限循环,提高脚本效率。