2

我想知道是否有办法离开叠瓦循环:

check_mac_address() {
    local mac="$1"
    for wunit in `get_wunit`; do
        for iuc in `get_iuc`; do            
            for assoc_mac in `get_iuc $wunit $iuc`;do
                if [ "$assoc_mac" = "$mac"]; then 
                    local int_type="WF" 
                    break #---> break from all loop  
                else
                    int_type="ETH"
                    break #---> break from all loop  
                fi 
            done
        done
    done
}

任何帮助表示赞赏

4

2 回答 2

4

break接受一个参数,该参数指定要中断多少级周围循环;在你的情况下,我相信它会是 3:

http://www.gnu.org/software/bash/manual/bashref.html#Bourne-Shell-Builtins

于 2015-05-04T13:15:22.447 回答
2

来自http://tldp.org/LDP/abs/html/loopcontrol.html

一个普通的 break 只会终止它所嵌入的最内层循环,但一个 break N 会从 N 级循环中跳出。

因此,在您的情况下,您可以打破所有三个循环

break 3
于 2015-05-04T13:15:31.040 回答