• 幕客老师召集小伙伴
  • 运维高手36项修炼
  • python自动化运维项目实战
  • nginx从入门到实战
  • 阿里云与Centos7实战

Shell-循环及跳出循环-while、until、break、continue

Shell循环

while until

循环次数不一定是固定的
========================================================

一、while语句结构
while 条件测试
do
循环体
done
==当条件测试成立(条件测试为真),执行循环体

二、until语法结构
until 条件测试
do
循环体
done
==当条件测试成立(条件测试为假),执行循环体

========================================================

 

COUNTER=0
while [ $COUNTER -lt 5 ]
do
    COUNTER='expr $COUNTER+1'
    echo $COUNTER
done

跳出循环

在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,Shell使用两个命令来实现该功能:break和continue。

break命令

break命令允许跳出所有循环(终止执行后面的所有循环)。

下面的例子中,脚本进入死循环直至用户输入数字大于5。要跳出这个循环,返回到shell提示符下,需要使用break命令。

#!/bin/bash
while :
do
    echo -n "Input a number between 1 to 5: "
    read aNum
    case $aNum in
        1|2|3|4|5) echo "Your number is $aNum!"
        ;;
        *) echo "You do not select a number between 1 to 5, game is over!"
            break
        ;;
    esac
done

continue

continue命令与break命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环。

对上面的例子进行修改:

#!/bin/bash
while :
do
    echo -n "Input a number between 1 to 5: "
    read aNum
    case $aNum in
        1|2|3|4|5) echo "Your number is $aNum!"
        ;;
        *) echo "You do not select a number between 1 to 5!"
            continue
            echo "Game is over!"
        ;;
    esac
done


例:Shell循环执行命令判断

#!/bin/sh

#

filename='1 2 3 33/44 55 66'

for file in $(echo $filename)

do

    mkdir /tmp/${file}

    substatu=$?

    if [ ${substatu} != 0 ];then

        echo "sub status ${substatu}"

    fi

done

echo "status....$?"

Shell-循环及跳出循环-while、until、break、continue

Pingbacks已打开。

引用地址

暂无评论

发表评论