1. 程式人生 > >shell中的自定義函式

shell中的自定義函式

shell中的自定義函式

自定義函式

基本語法

[ function ] funname[()]
{

Action;
[return int;]
}

呼叫直接寫函式名:funname [值]

注意:

1 函式體不能為空,函式體為空會報錯,裡面寫一條語句,比如 echo "test" 就不會報錯了

2 一般function關鍵字可省略,其實()小括號也可以省略,具體看下面的解釋和說明。

以下3種形式都對,一定要注意空格,不注意空格的話,語法會報錯,我之前就是沒寫空格,一直報錯!

()和{}之間要寫空格哦

function fname() { 程式段 }

function fname { 程式段 }

fname() { 程式段 }

以上3種語法都可以!記住:function和()可以省略,但是不能同時省略function關鍵字和()小括號,你至少要保留其中一個,或者把2個都保留也是可以的。

應用例項

案例 1:計算輸入兩個引數的和(read), getSum

記住:function和()可以省略,但是不能同時省略function關鍵字和()小括號,你至少要保留其中一個,或者把2個都保留也是可以的。

#!/bin/bash

#自定義函式
#案例 1:計算輸入兩個引數的和(read), getSum
function getSum() {
        MYSUM=$[$NUM1+$NUM2]
        echo "2個引數的和=$MYSUM"

}

#呼叫getSum函式
read -p "請您輸入第一個數" NUM1
read -p "請您輸入第二個數" NUM2
getSum $NUM1 $NUM2

#自定義函式還有如下這種語法,function關鍵字可以省略
        getSum2() {
                MYSUM2=$[$NUM3+$NUM4]
                echo "2個引數的和=$MYSUM2"
        }

#呼叫getSum2函式
read -p "請您輸入第1個數" NUM3
read -p "請您輸入第2個數" NUM4
getSum2 $NUM3 $NUM4

function getSum3() {
        MYSUM3=$[$NUM5+$NUM6]
        echo "2個引數的和=$MYSUM3"
        }
read -p "請您輸入第1個數" NUM5
read -p "請您輸入第1個數" NUM6
#呼叫getSum3函式
getSum3 $NUM5 $NUM6

#()小括號可以省略
function getSum4 {
        echo "我是getSum4函式"
        }
#呼叫getSum4函式
getSum4

#()小括號可以省略
function getSum5 {
        echo "我是getSum5函式"
        MYSUM5=$[$NUM7+$NUM8]
        echo "2個引數的和=$MYSUM5"
        }
read -p "請您輸入第1個數" NUM7
read -p "請您輸入第1個數" NUM8
#呼叫getSum5函式
getSum5 $NUM7 $NUM8

#()小括號可以省略
function myTest {
        TESTSUM=$[$1+$2]
        echo "命令列中的2個引數和=$TESTSUM"
        echo "命令列是$0"
}

#呼叫myTest函式
myTest $1 $2

function test2() {
    #注意:函式體不能為空,函式體為空會報錯,所以為了防止報錯,我就在函式體中,隨便列印一句話吧
        echo "我是test2函式"
}
#呼叫test2函式
test2