shell指令碼編程基礎*

來源:互聯網
上載者:User

標籤:version   程式設計語言   解譯器   版本號碼   選擇性   

shell是解釋型的程式設計語言


解釋型指令檔的執行過程:

    當執行一個解釋型的指令檔是時,指令檔會被提交到核心。核心看到第一行定格寫的“#!”時,就會調用“#!”後面跟的解譯器,啟動一個解譯器進程,並把該檔案的後續內

容交給解譯器翻譯給CPU執行。指令碼後續內容執行完畢後,解釋進程將會隨之結束。


shell指令碼書寫規範:

       第一行:#!/bin/bash  必須定格書寫

               #author: movekj  指令碼作者

               #date:  書寫日期

               #version:0.0.1  版本號碼

               #description: bash scription  指令碼功能描述


shell指令碼編程是一門過程式的程式設計語言,有以下三種執行流程:

       順序執行:從檔案的第一條語句開始一條一條向後執行

       選擇執行:根據給出的條件,選擇性的執行

       迴圈執行: 重複的執行迴圈體中的語句


       變數:

            本地變數:只對當期進程有效

                  var_Name=value

            環境變數:對當前進程及其自進程有效

                  export var_Name=value

            局部變數:在代碼塊中有效(通常用於函數中)

                  local var_Name=value

            

            位置變數:$0、$1、$2...$n

            特殊變數:

                  $#:表示指令碼參數的個數

                  $?:表示上一條命令的執行狀態(0表示執行成功,非零表示執行失敗)

                  $*:表示指令碼的參數列表

                  [email protected]:表示指令碼的參數列表

       變數賦值:

            var_Name=value

            declare [option] var_Name=value

    

       shell指令碼中常見的符合及其意義:

            `COMMAND`(反撇號):表示命令引用,引用命令的執行結果

            " "(雙引號):弱引用,其中有$加變數名時,會做變數替換

            ‘ ‘(單引號):強引用,其中有$加變數名時,不會做變數替換


       迴圈語句:(有以下常見的三種)

            for迴圈:遍曆列表,遍曆到列表最後一個參數時,退出迴圈。

                     for var_Name in LIST

                     do

                          迴圈體

                     done

                     LIST的產生方式:

                          1、seq命令

                             seq [star] [步進] [end]

                          2、{..}

                          3、直接鍵入參數以一個或多個空格隔開


            while迴圈:當條件不滿足condition時,退出迴圈。

                     while condition

                     do

                         迴圈體

                     done

            until迴圈:當條件滿足condition時,退出迴圈。

                     

                     while condition

                     do

                         迴圈體

                     done

       選擇語句:

            if語句:

                    單分支:

                    if COMMAND

                    then

                         選擇分支

                    fi

                    雙分支:

                    if COMMAND
                    then

                         選擇分支1

                    else

                         選擇分支2

                    fi

                    多分支:

                    if COMMAND    

                    then

                         選擇分支1

                    elif COMMAND

                    then

                         選擇分支2

                    elif COMMAND
                    then

                         選擇分支3

                    ...

                    else

                         選擇分支n

                    fi

           case語句:

               case var_Name in 

               )

                    ;;

               )

                    ;;

               )

                    ;;

               esac


shell條件測試

        字元比較:

            >、<、>=、<=、==、!=

            -z:測試變數是否為空白

            -n:測試變數是否不空

        數字比較:

            -gt、-lt、-ge、-le、-eq、-ne

        檔案測試:


算數運算

        運算子合:+、-、*、**(乘方)、/、%(模數/取餘)

        let var_Name=EXPR

        let I++ --> let I=$I+1

        let I+=2 --> let I=$I+2

        let I-=2 --> let I=$I-2

        其它符合以此類推

        

        expr AGR1 + AGR2 ...

        $[EXPR]

        $((EXPR))

        expr AGR1 + AGR2 ...



                    







shell指令碼編程基礎*

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.