bashの関数の使い方
bashの場合、関数の戻り値が制限されていて、厳しい。
関数の仕事の成果として返す情報を3つに分類する。
- ステータス: return で返す終了ステータス。整数値しか返せない。
- 結果変数: 整数値以外が必要なら、適当なシェル変数にセットして終わる。
- 出力: 標準出力への書き込みで情報を返す。
それぞれの特徴:
- ステータス: 簡単、条件式として使える。整数か、整数によるbooleanしか返せない。
- 結果変数: 文字列や配列が返せる。変数管理がめんどくさい。
- 出力: 通常の戻り値に近いし、目視確認できる。受け側でバッククォートが必要。
戻り情報の受け取り方
- func; myvar=$?
- func; myvar=$result_var
- myvar=`func` または myvar=$(func)
使い方の方針
- 出来るだけステータスを使う。整数で間に合わないときだけ結果変数か出力
- 目視確認が必要だったり、結果を他のコマンドの引数にしたいときは出力
- ライブラリなどでは結果変数
- 2つを組み合わせてもいいが、3つの組み合わせはやめる。
- 基本は、成功失敗をbooleanステータスとして、成功したときの値を変数または出力
- 失敗した時の値は空文字列''にする。
- 正常値として''があるときは、ステータスと併用する。
ドキュメントの書き方
- $? なんたら
- $result なんたら
- stdout なんたら