次のページ 前のページ 目次へ

8. 関数(functions)

ほとんどどんなプログラムに当てはまることですが、関数(function)を使えば、より 論理的に一群のコードをグループ化することができます。また、神秘的ともいえる 再帰法(recursion)を使うことも可能になります。

関数の宣言は、 "function my_func { my_code }" と 書くだけでできます。

関数の呼び出しは、他のプログラムの呼び出しと同じで、その関数名を書くだけ です。

8.1 関数のサンプル

        #!/bin/bash 
        function quit {
            exit
        }
        function hello {
            echo Hello!
        }
        hello
        quit
        echo foo 
        

二行目から四行目にかけては、"quit" という関数が記述 されています。五行目から七行目にかけては、"hello" という 関数が記述されています。このスクリプトが何をしているか完全に把握できないな ら、実際に自分で書いて、実行してみてください。

関数は、何らかの特定の様式による宣言を必要としないということに注意してくだ さい。

このスクリプトを実行すると、最初に "hello" 関数が呼び出され、次に "quit" 関数が呼び出されます。そしてプログラムは十行目までは実行され ないことに気付くでしょう。

8.2 パラメーターを取る関数のサンプル

        #!/bin/bash 
        function quit {
            exit
        }  
            function e {
                echo $1 
            }  
        e Hello
        e World
        quit
        echo foo 

        

上記のプログラムは、前記のプログラムとほぼ同一です。主な違いは、 関数 "e" の存在です。この関数は受け取った第一引数を表示します。 引数は、関数の内部にあるときでも、スクリプトに直接渡したときと同じように扱わ れます。


次のページ 前のページ 目次へ