SHELL指令碼------基礎知識(|||)
阿新 • • 發佈:2019-01-10
一、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下建立的檔案都刪除掉