シェルスクリプトの
関数についてまとめました。
シェル関数とは
シェル関数とは、
シェルスクリプト内で使用する、機能ごとに処理をまとめたもの。
- 同じ処理を複数回実行するときに便利。
コードの重複を減らし見やすさと作業効率が上がる。 - メインルーチンの前に定義され、必要に応じて呼び出される。
#定義
関数名() {
処理
return 終了ステータス
}
#呼び出し
関数名 引数
function 関数名() {処理}と記述もできる。
関数は2種類に分けられる。
- メインルーチン・・・プログラムを開始する関数。主軸。
- サブルーチン・・・・プログラム内で繰り返し使われる処理をまとめたもの.
メソッドとは、
関数の一種で、特定のオブジェクトやクラスの動作や機能の処理をまとめたもの。引数とは、
関数やメソッドに渡される値や変数のこと。
入力データ。パラメーターとも呼ばれる。戻り値とは、
関数が処理結果を返す出力データ。
「変数=関数(引数)」とすると戻り値を変数に代入できる。
return文を使い、戻り値を指定することもできる。
hello() {
echo "Hello, $1 and $2 !"
}
hello John Mike
のように引数を指定すると
$ ./スクリプトファイル名 Hello, John and Mike !
と出力される。
return文とは
return文とは、
シェル関数を終了するコマンド。
- 終了ステータスが「0」なら正常終了。
0以外なら異常終了とみなされる。 シェル関数のreturnでは、終了ステータス(0〜255 までの数値)のみしか返せない。
exitコマンドは、呼び出されたその場でシェルスクリプトを終了する。
return文は、呼び出し元の関数に戻り値を返しその関数を終了する。
func() {
if [ "$1" = "success" ]; then #引数が”success”と同じなら
return 0
else #それ以外なら
return 1
fi
}
func "success" #引数を変更すると終了ステータスが変わり
if [ $? -eq 0 ]; then #0と同じなら
echo "成功"
else #0以外なら
echo "失敗"
fi
$ ./スクリプトファイル名 成功