UNIX系統管理:shell程式設計迴圈語句(1)

來源:互聯網
上載者:User
關鍵字 UNIX系統管理 shell程式設計 迴圈語句

完成這一章,你將能夠作以下事情:

使用while語句在條件為真的時候重複地執行一段代碼。

使用until語句重複執行一段代碼直到條件為真。

使用交互性的for語句進行迴圈控制。

1.迴圈的簡單介紹

目標:     重複的執行一段命令清單。

控制;     基於一個關鍵命令的傳回值。

三種格式:   while ... do ... done

until ... do ... done

for ... do ... done

迴圈語句讓你可以重複執行一個命令清單,而決定是繼續迴圈還是跳出迴圈是基於一個命令的傳回值。 test命令常常被用來控制一個迴圈是否繼續。

與分支語句不同的是,在分支語句中開始一個分支語句的關鍵字和結束一個分支語句的關鍵字是相反的(if/fi 和case/esac),迴圈語句由一個關鍵字和一些條件開始,循環體整個用do/done來包圍起來。

2.使用let來進行算術計算

語法:

let expression or (( expression ))

例子:

$ x=10          $ x=12

$ y=2           $ let "x <10"

$ let x=x+2        $ echo $?

$ echo $x         1

12            $ (( x > 10 ))

$ let "x = x / (y+1)"   $ echo $?

$ echo $x         $ 0

4             $ if ((x > 10 ))

$ (( x = x + 1 ))     >  then echo x greater

$ echo $x         >  else echo x not greater

5             fi

x greater

迴圈語句通常使用一個增長的數位變數來進行控制。 使用let命令,可以在shell腳本中使用算術運算式。 這個命令允許使用長的整數運算。 在上例中,expression代表一個shell變數的算術運算式和能夠被shell識別的操作符,而((  ))可以替let命令。 shell能夠識別的運算式如下所示:

操作符     描述

-        減去

!        邏輯相反

* / %      乘,除,餘數

+ -       加,減

<=  >=  < > 關係比較

== !=      等於不等於

=        賦值

括弧能夠被用作改變運算式中計算的順序,就像在

let "x=x/(y+1)"

中一樣

注意雙引號被用來忽略括弧的特殊含義。 同樣如果你希望使用空格來分隔操作符和操作符的時候,就必須使用雙引號,或者(( ))語句:

let " x = x + (y / 2)" 或者(( x= x+ (y / 2) ))

當使用邏輯和關係操作符,(!,<=,>=,<,>,++,~=),的時候,shell會返回一個代碼變數,?會反映結果是真還是假,再一次說明,必須使用雙引號來防止shell將大於和小於運算子當作I/ O重定向。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.