個人shell腳本編程

   對於shell腳本編程特色來講它是shell

        過程式編程語言、腳本類型語言、解釋型語言。編程

  在寫腳本的時候老是會遵循三種執行結構:順序執行結構、選擇執行結構、循環執行結構。數組

   順序執行即:以從左到右,從上到下順序執行全部的語句(命令)bash

   選擇執行結構:依照給定條件的邏輯判斷結果或者依照可選的取值範圍,進而選擇某個分支中的語句來執行;編程語言

    有if:分支選擇標準;邏輯判斷的結果;ide

     case:分支選擇標準;根據可選的取值;spa

   循環執行結構:對於某特定語句,重複執行0次,1次或屢次;it

   有for:遍歷指定的列表class

    while:根據邏輯判斷的結果變量

    until:根據邏輯判斷的結果

   select:死循環,利用循環機制提供選擇列表

----------------------------------------------------------

  if結構一般來講有雙分支和多分支結構

   無非就是在if下又添加了elif  例如

if CONDITION1 ; then

           STATEMENT

           ...

         elif CONDITION2 ; then

           STATEMENT

           ...

         elif CONDITION3 ; then

           STATEMENT

           ...

         ...

         else

           STATEMENT

           ...

         fi

  case 語句使用來 在給出不一樣的參數時作出不一樣的結果

    case 變量引用 in 

        模式1)

          分支1

          ;;

        摸式2)

          分支2

          ;;

        ...

        *)

          默認分支

          ;;

      esac

   在這裏的模式可有不少種匹配方式

     1.普通的文本字符

     2.globbing風格的通配符

       *:任意長度任意字符

       ?:任意的單個字符

       []:範圍內的任意單個字符

       [^]:範圍外的任意單個字符

     3.| :或

 for 循環有兩種格式

    1.遍歷列表

     for VAAR_NAME in LIST ; do 

        循環體

     done

    這個列表LIST的能夠:

            1):直接寫出

            2): 純整數列表

              seq:輸出一個整數列表

                 seq [FIRST [INCREMENT]] LAST

            3) :花括號展開

                {FIRST..LAST}

                     {0..100..3}  顯示0-100中能被3整除的數字

            4) : 命令的執行結果返回值

            5):GLOBBING(通配符)

            6): 某些變量的引用:$@,$*

     2.控制變量的格式  

       for (( 表達式1; 表達式2; 表達式3 )); do 

         ((循環體))

       done

          表達式1:爲變量賦初始值

          表達式2:循環的退出條件

          表達式3:變量值的變換規律

  while、until循環:

       while CONDITION ; do

         循環體

       done

        進入循環的條件:CONDITON一直爲真;

        退出循環條件:CONDITON爲假

        -------------------

       until CONDITION ; do

        循環體

       done

       進入循環的條件:CONDITON一直爲假;

        退出循環條件:CONDITON爲真

 注意:對於while和until兩個循環結構來說,若是要實施變量增量操做,必須手動給出;

     例如:利用while和until循環結構,計算100之內全部整數和;

     #!/bin/bash

     #

     declare -i I=1

     while [ $I -le 100 ] ; do

      let SUM+=$I

      let I++

     done

對於循環語句 還有一個無限循環的用法

 while true ;do

    循環體

  done


  until false ;do

   循環體

  done


  在此類的循環結構中,必須適當的使用continue和break,以保證循環不會一直持續下去;

   continue:

    continue [n] 

     提早技術第n層的本次循環,直接進入下一輪條件判斷,若符合循環進入條件,則開啓下一輪循環; 

   break:

    break [n]

    提早結束第n層循環;再也不繼續後續循環;

  

還有一個實現遍歷功能的while、until循環 用於對文件的每一行讀取操做

while read LINES ; do

    循環體

  done < /PANTH/FROM/SOMEFILE

until ! read LINES ; do

 循環體

done < /PATH/FROM/SOMEFILE


select

  select循環主要用於建立一個菜單式列表,供用戶進行選擇;

  列表是按照數字順序排列的,咱們只要選擇數字便可;


  通常來說,select與case一塊兒使用;


  select是一個無限循環結構,所以,必須在循環體中使用break命令以退出循環,或者能夠使用exit命令直接終止腳本。


  select NAME [in 詞語 ... ;] do 命令; done


  select NAMl6E [in lsit ] ; do 

     命令 

  done

對於和用戶交互式的命令read

   read命令:

    read [-a 數組] [-p 提示符] [-t 超時] [名稱 ...]

    名稱通常爲變量名或數組名;若是不寫名稱,則系統會將read讀到的信息保存在REPLY變量中;


    注意:在使用read命令的時候,一般會使用-t選項來規定超時時間;一旦使用-t選項定義了超時時間,咱們必須在後面判斷給定的變量是否爲空,若是爲空須要爲變量提供默認值;

  


 取隨機數  8之內的

      echo $[$RANDOM%8]

相關文章
相關標籤/搜索