UNIX Shell循環(huán)

2018-12-09 15:41 更新

Shell循環(huán)

循環(huán)是一個強大的編程工具,可以使您能夠重復(fù)執(zhí)行一系列命令。針對 Shell 程序員,有 4 種循環(huán)類型:

  • while 循環(huán)
  • for 循環(huán)
  • until 循環(huán)
  • select 循環(huán)

根據(jù)不同的情況使用不同的循環(huán)。例如只要給定條件仍然是 true,while 循環(huán)將執(zhí)行給定的命令。而 until 循環(huán)是直到給定的條件變成 true,才會執(zhí)行。

一旦你有了良好的編程實踐,你就會開始根據(jù)情況使用適當(dāng)?shù)难h(huán)。while 循環(huán)和 for 循環(huán)在大多數(shù)其他編程語言如 C、C++ 和 PERL 等中都有實現(xiàn)。

嵌套循環(huán)

所有的循環(huán)都支持嵌套的概念,這意味著可以將一個循環(huán)放到另一個相似或不同的循環(huán)中。這個嵌套可以根據(jù)您的需求高達無限次。

下面是一個嵌套 while 循環(huán)的例子,基于編程的要求,其他循環(huán)類型也可以以類似的方式嵌套:

嵌套 while 循環(huán)

可以使用 while 循環(huán)作為另一個 while 循環(huán)體的一部分。

語法

    while command1 ; # this is loop1, the outer loop
    do
       Statement(s) to be executed if command1 is true

       while command2 ; # this is loop2, the inner loop
       do
      Statement(s) to be executed if command2 is true
       done

       Statement(s) to be executed if command1 is true
    done

例子

下面是循環(huán)嵌套的一個簡單例子,在循環(huán)內(nèi)部添加另一個倒計時循環(huán),用來數(shù)到九:

    #!/bin/sh

    a=0
    while [ "$a" -lt 10 ]# this is loop1
    do
       b="$a"
       while [ "$b" -ge 0 ]  # this is loop2
       do
      echo -n "$b "
      b=`expr $b - 1`
       done
       echo
       a=`expr $a + 1`
    done

這將產(chǎn)生以下結(jié)果。重要的是要注意 echo -n 是如何工作的。這里 -n 選項讓輸出避免了打印新行字符。

    0
    1 0
    2 1 0
    3 2 1 0
    4 3 2 1 0
    5 4 3 2 1 0
    6 5 4 3 2 1 0
    7 6 5 4 3 2 1 0
    8 7 6 5 4 3 2 1 0
    9 8 7 6 5 4 3 2 1 0
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號