1. 程式人生 > >shell程式設計(二)

shell程式設計(二)

8.0  for

       for有兩種應用方法    

      ####注意,此方法與case   有相同之處,但case 後的變數是引用,而無for後是賦值,所以case 後用$var   而for  用var

     8.1   

             8.11   for    num    in  1   2   3   4 ;do         

                  echo   $num

             done    

              8.12如果in   後用*,則為列用當前shell檔案所在目錄中的所有檔案   

             for  file  in * ;do

                     echo $file

            done

            8.13 如果沒有引數,則預設使用命令列引數,注意,這裡沒in

             for   file     ;do

               echo $file

              done

     8.2    這種和c語言的for沒有多大區別   但這裡值得注意,(())裡面對變數的引用,並不用$

               for((num=0 ; num < 10 ;num++));do

                       echo  ((sum+=num))  ##這裡輸出出錯

                      ((sum+=num))

                       echo  sum             ##這樣子沒問題

 

9.0   while

        i =0

        while(i<10);do

          $i++     ##這裡這樣子做是不充許的,

            ((i+))##這裡應該這樣做 

               echo $i

done 

10.0   until    剛好與 while 相反

           i=0

         until((i>10));do

        ((i++))

             echo $i

done

輸出  0---1.。。11

11  shife    移去命行位,,後而跟引數  shift  2   預設為shift  1 $#  命令列引數的個數,從 $1 開始計算      

        while(($#>=1));do

echo $0

    shife

done

12   跳出迴圈  exit    break;  continue    後面可以跟引數,   預設為break  1   contiue  1   

1)break [n]     中止迴圈過程的執行,並且跳到下一個命令。

      N表示跳出巢狀的層數

2)continue [n]  停止迴圈過程的當前一個反覆並且跳到循  

      環中的下一個反覆過程的開始部分,n表示忽略的層  當只 一層迴圈時,n為多個都一樣。  至少保持有一層。

3)   exit [n]     停止shell程式的執行,並且將返回值設定為n