シェル プログラミングの強力な機能である関数は、共通の機能によって編成されたコマンドのグループです。これらの管理しやすいユニットは、呼び出されたときに単一の値を返し、何も出力しません。関数を使用するには、次の 2 つの手順が必要です。
1.関数の定義
2.関数の呼び出し
シェル関数とシェル エイリアス
シェル関数とエイリアスは 2 つの点で異なります。
– エイリアスは関数のように引数を取りません。
– コマンド名が関数およびエイリアスとして定義されている場合、エイリアスが優先されます。
シェル関数を表示
関数定義を表示するには、次のコマンドを使用します:
# typeset -f list () { ls --color=auto -al | wc -l } num () { who | wc -l }
関数の定義
関数は、次の一般的な形式を使用して定義されます:
# function [function name] { command; . . . command; }注意 :左中括弧の後と右中括弧の前にスペースを入れる必要があります。
次の例では、現在システムにログインしているユーザーの総数を表示する num という関数を定義しています。 num 関数は who コマンドを実行し、その出力はさらに wc コマンドに送られます。
$ function num { who | wc -l; }
シェル スクリプト内のシェル関数
関数は、シェル スクリプトで役立つだけでなく、エイリアスが使用できないコマンド ラインの状況でも使用されます。デモンストレーションとして、コマンド ラインでシェル関数を実行して、関数がどのように実行されるかを示します。
次の例では、現在のディレクトリ内のサブディレクトリとファイルの総数を表示する list という関数を作成します。 list 関数は ls コマンドを呼び出し、その出力は wc コマンドに送られます:
$ function list { ls -al | wc -l; }
$ list 34
関数の呼び出し
コマンド ラインまたはシェル スクリプト内で関数名を入力するだけで、関数を呼び出すことができます。
$ [function name]
たとえば、コマンド ラインで関数 num を呼び出すには、次のコマンドを使用します。
$ num