shell小結

 

一、基本變量

       linux腳本中的變量不需要事先聲明,而是直接定義使用(這點不同於其他高級編程語言中變量的使用)bash變量類型分爲本地變量和環境變量。

   本地變量:只對當前的shell有效,對其他shell及其子shell沒效

   環境變量:對當前shell進程及其子shell有效,對其它的shell進程無效。

   位置變量:$1, $2, ..., ${10};$1爲第一個輸入的變量$0爲函數的本身,$#和$@爲總共輸入變量的數量。

   特殊變量:$?

$$: Shell本身的PIDProcessID      
$!: Shell最後運行的後臺Process的PID      
$?: 最後運行的命令的結束代碼返回值      
$-: 使用Set命令設定的Flag一覽      
$*: 所有參數列表。如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有參數。      
$@: 所有參數列表。如"$@"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有參數。      
$#: 添加到Shell的參數個數      
$0: Shell本身的文件名      
$1$n: 添加到Shell的各參數值。$1是第1參數、$2是第2參數…

   變量的引用  " ":弱引用,裏面的變量會被替換;

               ' ':強引用,裏面的所有字符都是字面量,直接輸出.

 

 

二、基本語句

①if語句 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

    (1)單分支的if語句:

            if 測試條件; then

                 選擇分支

            fi

     表示條件測試狀態返回值爲0時,則執行選擇分支

          

         或者另外一種格式:

            if 測試條件

            then

                 選擇分支

            fi

      

     (2)雙分支的if語句:

        if 測試條件; then

            選擇分支1

        else

            選擇分支2

        fi 

      兩個分支僅執行其中之一。

       

     (3)多分支的if語句:

        if 條件1; then

            分支1

        elif 條件2; then

            分支2

        elif 條件3; then

            分支3

        ...

        else

            分支n

        fi

、case語句

1

2

3

4

5

6

7

8

9

10

11

12

13

14

    case 語句:有多個測試條件時,case語句會使得語法結構更明晰

   

   格式:

    case 變量引用 in

    PATTERN1)

        分支1

        ;;

    PATTERN2)

        分支2

        ;;

    ...

    *)

        分支n

        ;;

    esac

     

    

     

     

 

、for語句

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

    格式:

        for VAR_NAME in LIST    

        do

            循環體

        done 

         

    或者可以寫成:

        for VAR_NAME in LIST ;do

            循環體

        done 

     

    LIST:列表,中間包括一個或多個元素

      

    退出條件:遍歷結束

     

    for的第二種使用格式 :

        for ((初始條件;測試條件;修改表達式)); do

            循環體

        done

④、while語句

1

2

3

4

5

    while  測試條件; do

        循環體

    done

      

    如測試結果爲“真”,則進入循環;退出條件爲,測試條件爲假;

⑤、until語句

1

2

3

4

5

    until 測試條件; do

        循環體

    done

      

    如果測試結果爲“假”,則進入循環;退出條件爲,測試條件爲真;

、函數    

 (函數要先定義,然後才能使用) 

1

2

3

4

5

6

7

8

9

    語法:    

        兩種格式:

        function F_NAME {

            函數體

        }

          

        F_NAME() {

            函數體

        }

    

⑦、信號捕捉

    trap: 可以在信號出現時捕獲信號和執行其他命令   

1

2

3

4

5

6

7

8

9

10

11

    trap CMDs SIGNALs

Linux使用信號與系統上運行的進程進行通信。常用的信號

1 SIGHUP 掛起進程

2 SIGINT 中斷進程

3 SIGQUIT 停止進程

9SIGKILL 無條件終止進程

15 SIGTERM 如果可能的話終止進程

17 SIGSTOP 無條件停止但不終止它

18 SIGTSTP 停止或暫停進程但不終止它

19 SIGCONT 重新啓動停止的進程

默認情況下bash shell會忽略SIGQUIT3和SIGTERM5信號以防止交互的shell意外終止

捕獲信號

 

⑧、數組

 

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