Bash > 関数の定義

更新日 2012-03-08
広告
関数を定義する方法を紹介します。
関数定義の構文は、以下のようになります。
function 関数名 {
    任意の処理
}
以下のサンプル test.sh では、足し算を行う関数 sum を定義しています。
#!/bin/bash

function sum {
    var=$(($1+$2))
    echo $var
}

sum 20 10 # 関数sumの実行

result=$(sum 20 10) # 関数の実行結果を変数resultに格納
echo "result = $result"
ポイントをまとめます。
  • 関数内では、$1や$@などの特殊変数を利用できます。
  • 関数sumは、2つの引数($1と$2)の合計を計算し(4行目)、echoで出力します(5行目)。
  • 8行目で、関数sumを呼び出しています。20と10が、sumに渡す引数になります。
  • 10行目で、関数sumの実行結果を、変数resultに格納しています。
test.shを実行すると以下のようになります。
$ ./test.sh 
30
result = 30
関数内で定義した変数は、基本的にはグローバル変数となります($1や$@などの特殊変数は除く)。ただし、変数の前に local という前置詞を記述することで、ローカル変数を定義可能できます。
関数の終了ステータスは、以下の構文で指定できます。
    return 値
ただし、値には、数値しか指定できません。文字列を指定するとエラーになります。また、この値は、CやJavaにおける「返り値」とは、意味が異なります。Bashでは、上記の例のように、返り値としたい値は標準出力するほうが自然です。
広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system