1. 程式人生 > >SHELL指令碼------基礎知識(|||)

SHELL指令碼------基礎知識(|||)

一、SHELL中的函式

1.語法
方法1:
函式名( ) {
    函式體
    return n
}

方法2:
function 函式名( ) {
    函式體
    return n
}

2.呼叫函式

最後一步 fun1   呼叫函式

3. 引用函式

每次引用函式時,bash會重新回到函式的定義。

4. 函式不一定要在最開始定義,但是如果函式在定義前就使用,會報錯

5. 函式名必須是唯一的,如果重新定義了函式,新的函式會覆蓋舊的

6. 返回值

1)預設退出狀態碼:預設情況下,函式的退出狀態碼是函式中最後一條命令返回的退出狀態碼
2)使用return命令
shell使用return命令來退出函式並返回特定的退出狀態碼

3)使用函式輸出

將函式的輸出儲存在shell變數中,可以獲得任何型別的函式輸出,並將其儲存到變數中

4)函式中使用變數

可以向函式中傳遞引數函式名會在$0變數中定義

函式命令列上的任何引數都會通過$1,$2定義

$#來判斷傳給函式的引數數目

5)函式不能直接從命令列獲取指令碼的引數值

二、shell——全域性變數與區域性變數

變數的作用域

一、全域性變數:

 任何地方都生效的變數,預設情況下,指令碼主體內定義全域性變數,函式內可以用,函式外也可以用

二、區域性變數:

定義方法: local value

三、shell中利用函式遞迴—計算階乘

函式遞迴

計算階乘:

四、shell中訊號的捕捉(trap)

訊號

   linux通過訊號來在執行在系統上的程序之間通訊也可以通過訊號來控制shell指令碼的執行

(1)捕捉訊號:trap命令

  常用訊號 ctrl+c(終止程序) ctrl+z(暫停程序,打入後臺)

 
 

(2)列出中斷訊號與鍵盤的關係

 

(3)訊號遮蔽

 

(4)指令碼方式:

(5)捕捉指令碼的退出

(6)練習題

執行指令碼時,使用ctrl+c可以將/tmp/westos下建立的檔案都刪除掉