第五週

函數調用

函數的調用:

可在交互式環境下定義函數,即直接在bash命令行裏寫函數和調用函數。

可將函數放在腳本文件中作爲它的一部分,即在同一個腳本文件裏調用函數。

可放在只包含函數的單獨文件中,即其他shell腳本可以調用這個文件,用. path/to/functions_file或者source path/to/functions_file

函數調用很簡單:
無參數:function_name
有參數:functions_name arg1 arg2 ... argN

functions_name爲函數名,arg爲argument(參數)的意思。在函數體中當中,可使用$1, $2調用這些參數;還 可以使用$@, $*, $#等特殊變量

函數返回值

函數有兩種返回值:

函數的執行結果返回值:

(1) 使用echo等命令進行輸出

(2) 函數體中調用命令的輸出結果

函數的退出狀態碼:

(1) 默認取決於函數中執行的最後一條命令的退出狀態碼

(2) 自定義退出狀態碼,其格式爲:

return 從函數中返回,用最後狀態命令決定返回值。

return 0 無錯誤返回。

return 1-255 有錯誤返回。
函數中的局部變量

當函數中有變量的時候,和函數體外的變量容易衝突,這時候可以用局部變量

在函數中定義局部變量的方法:
local NAME=VALUE

環境函數(全局函數)

export -f func或者declare -fx func

declare中,-f的意思是function,-x的意思是export

    遞歸函數

函數直接或間接調用函數自身。

階乘:

#!/bin/bash
fact() {
if [ $1 -eq 0 -o $1 -eq 1 ]; then
echo 1
else
echo $[$1*$(fact $[$1-1])]

fi

}
fact $1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章