Shell指令碼之——函式的使用
阿新 • • 發佈:2021-07-26
一、函式介紹
1.1 是什麼的函式
函式定義:封裝的可重複利用的具有特定功能的程式碼
函式就是可以在shell腳本當中做出一個類似自定義執行的命令的東西,最大的功能就是簡化我們很多的程式碼。
1.將命令序列按照格式書寫在一起
2.可方便重複使用命令序列
1.2 函式的格式
[function] 函式名 (){
命令序列
[return x]
#使用return或者exit可以顯式的結束函式
}
寫法2
函式名(){
命令序列
}
1.3 函式呼叫的方法
函式名 [引數1] [引數2]
寫一個腳本里麵包括函式備份yum線上源,建立yum本地源和清理快取安裝httpd服務。
1.4 函式的返回值
return表示退出函式並返回一個退出值,指令碼中可以用$?變數顯示該值
使用原則:
1、函式一結束就取返回值,因為$?變數只返回執行的最後一條命令的退出狀態碼;
2、退出狀態碼必須是0~255,超出時值將為除以256取餘。
案例:將函式返回值賦予變數,然後使用該變數進行計算
1.5 函式的傳參
函式也是有引數的,它的內建變數與shell指令碼很類似,函式名稱代表示$0,而後續的變數也是以$1、$2…來替換的,這裡比較容易搞混,因為函式是一個方法,我們看程式碼的時候直接從程式碼的主體部分去看,然後程式碼中呼叫了什麼函式我們再去看這個函式是做什麼的就不容易搞混了,以下面實驗舉例:
1.6 函式變數的作用範圍
函式在shell指令碼中僅在當前shell環境中有效
shell指令碼中變數預設全域性有效
將變數限定在函式內部使用local命令
案例:測試變數作用域
1.7 函式的遞迴
函式呼叫自己本身的函式
案例:階乘
1.8 遞迴目錄
1.8 建立函式庫
shell 函式庫也是一個 shell 指令碼,不過你可以在一個函式庫中僅儲存其它 shell 指令碼中需要呼叫的函式。
建立函式庫指令碼檔案:myfuncs.sh
,在裡面寫入加法、減法等運算的函式