Bash の基本的な関数

Bashスクリプト入門

Alex Scriven

Data Scientist

なぜ関数か

 

R や Python で関数を使ったことがあれば、次の利点に馴染みがあるはずです:

  1. 再利用できる
  2. きれいなモジュール化(部品化)したコードにできる
  3. 共有しやすい(入出力だけ分かれば使える)
Bashスクリプト入門

Bash 関数の基本構造

関数の構文を分解します:

  • まず関数に名前を付けます。後で呼び出すときに使います。
    • 分かりやすい名前にしましょう。
  • 関数名の後に丸括弧を付けます
  • 中括弧内にコードを書きます。これまで学んだもの(ループ、IF、入れ子のシェルなど)が使えます。
  • 必要なら何かを返します(注意: 見た目どおりではありません)

 

Bash 関数の構文は次のとおりです:

function_name () {
    #function_code
    return #something
}
Bashスクリプト入門

別の Bash 関数記法

次のようにも定義できます:

function function_name {
    #function_code
    return #something
}

主な違い:

  • 関数の開始を示すために function を使う
  • 先頭行の丸括弧は省略可能(慣例で付ける人も多い)
Bashスクリプト入門

Bash 関数の呼び出し

Bash 関数の呼び出しは、名前を書くだけです:

function print_hello () {
    echo "Hello world!"
}

print_hello # ここで関数を呼び出す
Hello world!
Bashスクリプト入門

華氏→摂氏の Bash 関数

以前のレッスンのように、静的変数を使って華氏を摂氏に変換する関数を書きましょう。

temp_f=30

function convert_temp () {
temp_c=$(echo "scale=2; ($temp_f - 32) * 5 / 9" | bc)
echo $temp_c }
convert_temp # 関数を呼び出す
-1.11
Bashスクリプト入門

Let's practice!

Bashスクリプト入門

Preparing Video For Download...