1. 程式人生 > >shell腳本如何自定義函數

shell腳本如何自定義函數

自定義函數 ews 最簡 ocl ... 知識 查看 return 函數傳遞

在寫程序時,經常會用到函數,一般開發工具擁有豐富的函數庫。但有時還需要根據自己的需要自定義函數滿足我們的需求。

在Linux中,寫shell腳本也一樣,有時會用到自定義函數。

函數,最簡單的定義為:將一組命令集或語句形成一個可用塊,這些塊稱為函數。


1、定義函數的格式:

[sql] view plain copy
  1. function-name ( ){
  2. command1
  3. ........
  4. }


[plain] view plain copy
  1. #函數名前面也可以加上function關鍵字
  2. function function-name( ) {
  3. command1
  4. ........
  5. }


2.函數調用

以下是一個函數的腳本實例:

[html] view plain copy
  1. #!/bin/bash
  2. function hello(){ #聲明函數
  3. echo "Hello!" #函數的主體,輸出"Hello!"
  4. } #函數結束
  5. hello #調用函數


3.參數傳遞
向函數傳遞參數就像在腳本是使用變量位置$1,$2,$3...$9
以下是一個傳遞參數的實例:

[html] view plain copy
  1. #!/bin/bash
  2. function hello(){
  3. echo "Hello! The first parameter is ‘$1‘."
  4. }
  5. hello good

#該腳本執行的結果是: Hello! The first parameter is ‘good‘.


4.函數文件
保存函數的文件,用以上的例子寫成一個函數文件如下:

[html] view plain copy
  1. #!/bin/bash
  2. function hello ( ){
  3. echo "Hello!"
  4. return 1
  5. }

上面的hellofunction文件就是一個函數文件,可通過另一個腳本來調用

[html] view plain copy
  1. #!/bin/bash
  2. . hellofunction #調用函數文件,點和hellofunction之間有個空格
  3. hello #調用函數


5.載入和刪除
用set查看已載入的函數
用unset function-name 取消載入
舉例如下:

[html] view plain copy
    1. #!/bin/bash
    2. #hellof
    3. . hellofunction
    4. unset hello
    5. hello #因為已經取消載入,所以會出錯

shell腳本如何自定義函數