在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ 循環(huán)控制
通信工具
信號(hào)和 Traps
文件管理
vi 編輯器使用向?qū)?/span>
替代
變量
環(huán)境
進(jìn)程管理
實(shí)用工具
引用機(jī)制
Manpage 幫助
文件系統(tǒng)基礎(chǔ)知識(shí)
系統(tǒng)日志
循環(huán)
正則表達(dá)式和 SED
目錄
函數(shù)
管道和過濾器
特殊變量
輸入/輸出重定向
系統(tǒng)性能
用戶管理
循環(huán)控制
決策
什么是 UNIX ?
數(shù)組
什么是 Shell 腳本
基本操作符
文件權(quán)限

循環(huán)控制

到目前為止你已經(jīng)學(xué)習(xí)過創(chuàng)建循環(huán)以及用循環(huán)來完成不同的任務(wù)。有時(shí)候你需要停止循環(huán)或跳出循環(huán)迭代。

在本教程中你將學(xué)到以下語句用于控制 Shell 循環(huán):

  • break 語句
  • continue 語句

無限循環(huán)

所有循環(huán)都有一個(gè)有限的生命周期。當(dāng)條件為假或真時(shí)它們將跳出循環(huán),這取決于這個(gè)循環(huán)。

一個(gè)循環(huán)可能會(huì)由于未匹配到適合得條件而無限執(zhí)行。一個(gè)永遠(yuǎn)執(zhí)行沒有終止的循環(huán)會(huì)執(zhí)行無數(shù)次。因此,這種循環(huán)被稱為無限循環(huán)。

例子

這是一個(gè)使用 while 循環(huán)顯示數(shù)字 0 到 9 的簡(jiǎn)單的例子:

    #!/bin/sh

    a=10

    while [ $a -ge 10 ]
    do
       echo $a
       a=`expr $a + 1`
    done

這個(gè)循環(huán)將永遠(yuǎn)持續(xù)下去,因?yàn)?a 總是大于或等于 10,它永遠(yuǎn)不會(huì)小于 10。所以這正是無限循環(huán)的一個(gè)恰當(dāng)?shù)睦印?/p>

break 語句

所有在 break 語句之前得語句執(zhí)行結(jié)束后執(zhí)行 break 語句,break 語句用于跳出整個(gè)循環(huán)。然后執(zhí)行循環(huán)體后面的代碼。然后在循環(huán)結(jié)束后運(yùn)行接下來的代碼。

語法

以下 break 語句將用于跳出一個(gè)循環(huán):

    break

break 語句也可以使用這種格式來退出嵌套循環(huán)式:

    break n

在這里 n 指定封閉循環(huán)執(zhí)行的次數(shù)然后退出循環(huán)。

例子

這里是一個(gè)簡(jiǎn)單的例子,用來說明只要 a 變成 5 循環(huán)將終止:

    #!/bin/sh

    a=0

    while [ $a -lt 10 ]
    do
       echo $a
       if [ $a -eq 5 ]
       then
      break
       fi
       a=`expr $a + 1`
    done

這會(huì)產(chǎn)生以下結(jié)果:

    0
    1
    2
    3
    4
    5

這里是一個(gè)簡(jiǎn)單的嵌套 for 循環(huán)的例子。如果 var1 等于 var2 以及 var2 等于 0 ,則這個(gè)腳本將跳出這個(gè)雙重循環(huán):

    #!/bin/sh

    for var1 in 1 2 3
    do
       for var2 in 0 5
       do
      if [ $var1 -eq 2 -a $var2 -eq 0 ]
      then
     break 2
      else
     echo "$var1 $var2"
      fi
       done
    done

這會(huì)產(chǎn)生以下結(jié)果。在內(nèi)循環(huán)中,有一個(gè) break 命令,其參數(shù)為 2。這表明,你應(yīng)該打破外循環(huán)和內(nèi)循環(huán)才能滿足條件。

    1 0
    1 5

continue 語句

continue 語句類似于 break 命令,二者不同之處在于,continue 語句用語結(jié)束當(dāng)前循環(huán),能引起當(dāng)前循環(huán)的迭代的退出,而不是整個(gè)循環(huán)。

這個(gè)語句在當(dāng)程序發(fā)生了錯(cuò)誤,但你想執(zhí)行下一次循環(huán)的時(shí)候是非常有用的。

語法

    continue

正如 break 語句,一個(gè)整型參數(shù)可以傳遞給 continue 命令以從嵌套循環(huán)中跳過命令。

    continue n

在這里 n 指定封閉循環(huán)執(zhí)行的次數(shù)然后進(jìn)入下一次循環(huán)。

例子

下面是使用 continue 語句的循環(huán),它返回 continue 語句并且開始處理下一個(gè)語句:

    #!/bin/sh

    NUMS="1 2 3 4 5 6 7"

    for NUM in $NUMS
    do
       Q=`expr $NUM % 2`
       if [ $Q -eq 0 ]
       then
      echo "Number is an even number!!"
      continue
       fi
       echo "Found odd number"
    done

這會(huì)產(chǎn)生以下結(jié)果:

    Found odd number
    Number is an even number!!
    Found odd number
    Number is an even number!!
    Found odd number
    Number is an even number!!
    Found odd number
上一篇:文件管理