linux流程控制if,for,case,while

 Shell編程中循環命令用于特定條件下決定某些語句重復執行的控制方式,有三種常用的循環語句:for、while和until。while循環和for循環屬于“當型循環”,而until屬于“直到型循環”。循環控制符:break和continue控制流程轉向。

選擇執行:
            if COMMADN;then COMMAND;fi   :第一個命令執行成功,就執行第二條命令,否則就退出
多分支:
if  判斷條件 1 ; then
      條件為真的分支代碼
elif  判斷條件 2 ; then
      條件為真的分支代碼
elif  判斷條件 3 ; then
      條件為真的分支代碼
else
      以上條件都為假的分支代碼
fi
     逐條件進行判斷,第一次遇為“真”條件時,執行其分支,而后結束整個if

case中的 PAT 支持glob風格的通配符:
             *:  任意長度任意字符
             ?:  任意單個字符
            []:指定范圍內的任意單個字符
           a|b: a或b
case 變量引用 in        #變量引用便是方法: $i  就是變量引用的值                  
PAT1)                   #每個分支結束,需要雙引號結束
      分支1
      ;;
PAT2)
      分支2
      ;;
      …
)
      默認分支
      ;;
esac

循環執行:      
for  變量名 in 列表;do         #變量名,比如i, 直接是變量i ,而不是$i
     循環體
done
  執行機制 :
          依次將列表中的元素賦值給“變量名”; 每次賦值后即執行一次循環體; 直到列表中的元素耗盡,循環結束

列表生成方式:
(1)  直接給出列表
(2)  整數列表:
      (a) {start..end}     #{1..100}   {1..100..2} {100..1..1}  {100..10..-2}
      (b) $(seq [start [step]] end)  # seq 100   seq 1 2 100  seq 100 -2 1
      使用中括號的列表,步長放在后面
      使用seq命令列表,步長放在中間
(3)  返回列表的 命令
      $(COMMAND)
(4)  使用glob,如:
.sh
(5)  變量引用;
      $@, $*

取隨機字符:tr -dc “[:alnum:]” < /dev/urandom |head -c8 |md5sum  表示取幾位字符
                                              取隨機密碼:md5sum
for循環適合使用在關于數字和列表的循環,列表多少就循環多少次
while循環適用于判斷命令成功與否;
打印顏色: echo -e “\033[41m  \033[0m”       -e 是使轉義符生效
                     設定顏色    結束符
          其中41-45設定背景色,31-35字體顏色

while CONDITION; do
      循環體
done
     CONDITION:循環控制條件;進入循環之前,先做一次判斷;每一次循環之后會再
                  判斷;條件為“true” ,則執行一次循環;直到條件測試狀態為“false” 終止循環
 因此:CONDTION 一般應該有循環控制變量;而此變量的值會在循環體不斷地被修正
  進入條件:CONDITION 為true
  退出條件:CONDITION 為false

until CONDITION; do
    循環體
done
   進入條件: CONDITION  為false
   退出條件: CONDITION  為true

循環控制語句continue

用于循環體中
? continue [N] :提前結束第N 層的本輪循環,而直接進入下一輪判斷;最內層為第1層
while CONDTIITON1; do
        CMD1
        …
if CONDITION2; then
        continue
fi
        CMD2
done

原創文章,作者:shewei,如若轉載,請注明出處:http://www.www58058.com/71624

(0)
sheweishewei
上一篇 2017-03-25 13:12
下一篇 2017-03-25 22:40

相關推薦

  • MariaDB數據庫基于SSL實現遠程訪問和主從復制

    MariaDB數據庫基于SSL實現遠程訪問和主從復制 實驗環境 系統環境:Centos6.5 數據庫版本:5.5.36-MariaDB-log MariaDB Server 虛機數量:2 方案實施: 1,配置CA;并為node1和node2生成key和證書 2,在node1和node2上安裝Mariadb 3,配置節點1為MariaDB主節點 4,配置節點2…

    Linux干貨 2016-05-18
  • memcache

      memcached: memcached is a high-performance, distributed memory object caching system, generic in nature, but&nbsp…

    Linux干貨 2016-11-01
  • 如何在CentOS上構架一個簡易的局域網web服務器

    首先,要取得適用你系統版本的http源碼包,這里推薦兩個網站: httpd.apache.org www.kernel.org 根據自己系統的版本下載相應的源碼包; CentOS7 下載 httpd-2.4.25.tar CentOS6 下載 httpd-2.2.32.tar 以CentOS 6 示例: 首先,我們先來為http…

    2017-03-09
  • 慶祝馬哥成為51cto學院Linux運維金牌講師第一人

    講師何其多,金牌只一人(2016免費課程在底部) 某天,小編聽到: linuxer1:聽說51CTO學院評出了一個Linux金牌講師!只有一人呢! linuxer2:用腿想,就知道肯定是馬哥嘍! linuxer3:前段時間馬哥又分享了2016最新課時,限時免費學習呢!10086個贊!我和我的好基友們都在學習! linuxer4:馬哥的51CTO課程學員都兩百…

    2016-04-14
  • HA Cluster-主備模型(項目實戰)

    主機環境:主機A和主機B使用的是CentOS7.2的系統:    主機A IP地址為:192.168.1.103     主機B IP地址為:192.168.1.106     向外界提供的服務的地址為:192.168.1.100配置過程:…

    Linux干貨 2016-11-01
  • Bash1

    做語法測試,沒有消息就是最好的消息 加權限 單個語句的錯誤并不妨礙之后的語句,但是邏輯錯誤會導致后續語句執行不了 bash:     -n:語法測試     -x:模擬單步執行 變量類別:     本地變量   &nbs…

    Linux干貨 2016-09-17
欧美性久久久久