shell中的自定義函式
阿新 • • 發佈:2018-12-08
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