一 .函式的兩種格式
function name
{command
}name()
函式可以像其他shell命令一樣使用,在指定的喊輸入函式名即可
函式名必須唯一,如果在定義之前使用函式,會收到錯誤訊息
二 函式返回值
函式執行結束會返回乙個退出狀態碼,有3種不同的方法為函式生成退出狀態碼
0 ----------成功
1-------------呼叫未知錯誤
2-------------誤用shell命令
126-----------命令不可執行
127-----------沒有找到命令
128-------------無效退出引數
128+x-----------linux訊號x的嚴重錯誤
130-------------命令通過ctrl+c終止
255---------------退出狀態碼越界
1預設退出狀態碼
預設情況下,返回最後一條命令的返回的狀態碼作為函式的狀態碼。可以用$?變數來獲取函式退出狀態碼
2.使用return命令
return命令允許指定乙個整數值來定義函式的退出狀態碼。函式結束後用$?獲取退出狀態碼,但是必須記住
函式一返回就去取返回值
退出狀態碼必須在0---255之間,任何大於256的值都會返回乙個錯誤值
3使用函式輸出
可以將函式的輸出儲存到變數中
三 在函式中使用變數
1.向函式傳遞引數
函式使用標準的引數環境變數來代表命令列上傳的引數。$0表示函式名,其他引數通過$!,$2依次獲取,$#獲取引數數目
指令碼中使用函式時,函式名和引數放在同一行
由於函式使用特殊引數環境變數作為引數值,所以不能直接從指令碼命令列獲取指令碼的引數值
2在函式中處理變數
函式會使用兩種變數
全域性變數
區域性變數
全域性變數是在shell指令碼中任何地方都有效的,不管是在函式內還是函式外定義,預設情況下,指令碼中定義的都是全域性變數
在函式中定義的變數前加上關鍵字local ,變數就成為區域性變數
四 陣列變數和函式
1.向函式傳遞陣列引數
可以將陣列變數的值分解成單個值然後將這些值作為函式的引數。在函式內部,將所有的引數重組到新的陣列變數中
從函式返回陣列的方法也類似
五 建立庫
我們可以建立公關的函式庫指令碼檔案,並在需要使用庫函式的指令碼檔案中使用source命令執行庫指令碼, 就可以使用庫函式
source命令的快捷名為點號操作符
例如庫函式檔案myfuncs, 普通指令碼檔案test1要引用myfuncs 中的函式,只需要在test1中新增 . ./myfuncs就行
1.在命令列上建立函式有兩種方法
一是在一行內定義整個函式,或者在每個命令後加分號
二是用多行來定義函式,不用在每個命令後加分號,在函式末尾加花括號shell就會知道函式定義結束
2.我們可以在 .bashrc檔案中直接定義函式,也可以在bashrc檔案中source命令執行庫指令碼檔案
Shell程式設計 Shell函式
shell函式 1.將命令序列按格寫在一起 2.可方便重複使用命令序列 3.shell函式定義 function 函式名 4.呼叫函式的方法 函式名 引數1 引數2 5.shell函式應用示例 1 兩個數字求和 要求 通過sum 定義函式 兩個數求和 方法一 root localhost vim d...
shell程式設計 函式
函式是一段完成特定功能的 片段 塊 在shell中定義了函式,就可以使 模組化,便於復用 注意函式必須先定義才可以使用。函式名 function 函式名 函式名函式名 引數1 引數2 函式編寫shell指令碼,編寫系統工具,編寫迴圈的指令碼,功能選單 通過shell指令碼,編寫系統工具箱 編寫迴圈指...
Shell 程式設計(函式)
宣告函式 demofun 函式名 在shell中,呼叫函式時可以向其傳遞引數。在函式體內部,通過 n 的形式來獲取引數的值,例如,1表示第乙個引數,2表示第二個引數.funwithparam echo 第十乙個引數為 echo 引數總數有 個 echo 作為乙個字串輸出所有引數 函式呼叫 函式名 引...