Shell編程入之函數定義格式、函數參數講解,shell函數
使用者可以用shell定義函數,然後子啊shell指令碼中隨便調用。shell中函數的定義格式如下:
[ function ] funname [()]{ action; [return int;]}
可以帶 function fun() 定義,也可以直接 fun() 定義,不帶任何參數。 參數返回,可以顯示加:return 返回,如果不加,將以最後一條命令運行結果,作為傳回值。 return 後跟數值 n(0-255)
不含 return
demoFun(){ echo "This is my first function"}echo "-----func start-----"demoFunecho "-----func end-----"
包含 return
funWithReturn(){ echo "add action" echo "input first num: " read aNum echo "input second num: " read anotherNum echo "The two nums are $aNum and $anotherNum !" return $(($aNum+$anotherNum))}funWithReturnecho "The total of two nums are $? "
函數傳回值在調用該函數後通過 $? 來獲得。
注意:所有函數在使用前必須定義。這意味著必須將函數放在指令碼開始部分,直至shell解譯器首次發現它時,才可以使用。調用函數僅使用其函數名即可。
函數參數
在Shell中,調用函數時可以向其傳遞參數。在函數體內部,通過 $n 的形式來擷取參數的值,例如,$1 表示第一個參數,$2 表示第二個參數 ……
funWithParam(){ echo "first : $1 " echo "second : $2 " echo "tenth : $10 " echo "tenth : ${10} " echo "eleventh : ${11} " echo "total num : $# " echo "the single string : $* "}funWithParam 1 2 3 4 5 6 7 8 9 34 73
注意:$10 不能擷取第十個參數,擷取第十個參數需要 ${10} 。當 n>=10 時,需要使用 ${n} 來擷取參數。