shell腳本編程基礎

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表示執行成功,非零表示執行失敗)

                  $*:表示腳本的參數列表

                  $@:表示腳本的參數列表

       變量賦值:

            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 ...



                    







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章