シェル・プログラミング:13. 関数

 同じ処理を何度となくさせる場合,その処理を「一つの関数」として設定し,スクリプト内でそれを呼び出せばその処理がいつでもできる方が,プログラムとしては簡明になります。この考え方を拡張すれば,1つ1つの小さな,しかし結果に意味・目的を持たせるような処理を「1つの関数」として設定し,関数の羅列でプログラムを組めば,プログラムは,飛躍的に見やすくなることでしょう。ここでは,先ず,数学の関数の考え方を復習し,その後,それをシェル・スクリプトでの関数の設定方法と呼び出し方を見ます。

13.1. 数学の関数

 変数 x にある値を代入すると,変数 y がある一定のルールの下にある値をとるとき,変数 y は変数 x の関数といい,その依存関係を y=f(x) などで表記し,変数 x を関数 f の独立変数,変数 y を従属変数と呼ぶのでした。独立変数 x はベクトルでもよいし,変数 y もベクトルかもしれません。関数の値(y の値)が,変数 x の任意の値に対し一定の場合,これも関数であり,「定値関数」と呼ばれるのも習ったことでしょう。通例,x の値が変われば,「一定のルール」に従い,y の値は変化します。

13.2. シェルでの関数

 上の「一定のルール」を「定めた処理」と置き換えてみましょう。然らば,プログラミングにおける関数は,「予め処理を定める」ことで,関数に渡された値(入力)がその処理に従い,他の値(出力)に変換される仕組みということになります。シェルでの関数の定義方法,およびスクリプト内での変数の代入方法は,以下の通りです。