関数(Function)





関数の定義


func() { # 関数の引数 echo $1; # 変数は すべてグローバルだが local 宣言でローカルにもできる local l="aaa"; # Global 変数は下で定義されていても参照できる echo $gVar; # 途中で処理を抜けたい時は return を使う。 # 省略はできるが数値( 終了コード )をかえす必要がある return 1; }
# ↑で定義した関数から , 参照できる gVar="test"; # Call # コールする前に定義すみでないとエラーになる func arg1 # WARNING # () はいらない func();



include


source common.sh
# インクルードして . ~/common.sh # 呼び出す。 commonFunc test;
インクルードされる側
# 関数の定義 add() { # 引数をうけとる local sum=$(( $1 + $2 )) echo $sum return 1; } WARNING # Global Code は Include 側に影響がでるのでよくない echo foobar # Interpreter がここで中断される exit $?
インクルードする側
# インクルードする。 . "~/sh/common.sh" # CurrentDirectory 相対 . "./common.sh" # コマンド置換を使って結果をとる。 ret=`add 1 2` echo $ret
WARNING 子 process の関数登録は親には受け継がれない( 変数と同じ ) 関数の変更は登録して有効になる POINT export -f file : ( func を export する )