shell程式設計 建立函式

2021-07-06 00:25:50 字數 1540 閱讀 1868

一 .函式的兩種格式

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 作為乙個字串輸出所有引數 函式呼叫 函式名 引...