歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> Shell 循環語句用法小結

Shell 循環語句用法小結

日期:2017/3/1 10:31:10   编辑:SHELL編程
在寫shell腳本時,常常會用到循環語句。這裡簡單總結下常用的3種循環語句,以便以後能快速地參考寫出【哎,最近腦子不太好使了,在多種語言交叉編程時,常常切換不過來,犯低級錯誤】,廢話不說,開始demo:


1、for

主要用於:在已知序列裡遍歷元素

[plain]
  1. #! /bin/sh -
  2. if [ $# -ge 1 ]; then
  3. path=$@
  4. else
  5. path=*.sh
  6. fi
  7. for i in $path
  8. do
  9. ls -lh $i
  10. done

注意:for循環的in列表時可選的,如果省略,shell會遍歷整個命令行參數,此時 for i 相當於 for i in "$@"


再給一個for的用法示例:

[plain]
  1. #! /bin/sh -
  2. for i in `seq 1 9`
  3. do
  4. echo $i
  5. done

注意:for in 可以和 `` 與 $() 合用,上面的for i in `seq 1 9` 也等價與 for i in $(seq 1 9)

再給一個for的用法示例:

[plain]
  1. #! /bin/sh -
  2. for i in {a..z}
  3. do
  4. echo $i
  5. done
注意:for in 的大括號{}具有自動補齊功能,大括號與要補齊的內容之間不能有空格,要補齊的內容首尾由兩個..相連,其間不能有空格

再給個for的用法示例:

[plain]
  1. #! /bin/sh -
  2. for (( i=1; i<=10; i++ ))
  3. do
  4. echo $i
  5. done
提醒:這個主要是用了(())


2、while

主要用於:當某條件成立時,一直執行


[plain]
  1. #! /bin/sh -
  2. cnt=9
  3. while [ $cnt -ge 0 ]
  4. do
  5. echo $((cnt--))
  6. done

注意:1、算術運算,需要放在$(()) 的括號中

2、對於變量的算術運算,在$(())中,變量前面不需要$


3、unitl

主要用於:當某條件成立時,停止執行


[plain]
  1. #! /bin/sh -
  2. cnt=9
  3. until [ $cnt -lt 0 ]
  4. do
  5. echo $cnt
  6. cnt=$((cnt - 1))
  7. done

注意:給變量賦值時,前面不要加$


判斷語句,可以參考 Shell case語句用法小結 (見 http://www.linuxidc.com/Linux/2012-02/54385.htm )與 Shell if語句用法小結 (見 http://www.linuxidc.com/Linux/2012-02/54343.htm )

Copyright © Linux教程網 All Rights Reserved