Shellを書くための基礎。
ソースコード
Main.sh
#!/bin/sh function Main() { Sub1 Sub2 } function Sub1() { echo called Sub1. } function Sub2() { echo called Sub2. } Main
実行
bash Main.sh
背景
関数の定義順や呼出順について確認したい。
ソースコードは呼出元から順に見たほうが全体を把握できてわかりやすい。 しかし、C言語などでは先に定義しないと未定義エラーになる。 Shellではどうなのか確かめてみた。
関数の定義順
疑問:子関数から先に定義する必要があるか?
結論:ない。親関数を先に書いてもOK。
先に書いたほうが全体像を把握しやすくて良い。
呼出と定義順
疑問:関数呼出のとき、先に定義する必要があるか?
結論:ある。もし関数定義の前に呼びだそうとすると、以下のようなエラーが出る。
Main.sh: 行 2: Main: コマンドが見つかりません
後で定義しても参照できたほうが嬉しかった。 別解として関数定義を別ファイルにすることで実現できるはず。
所感
Windowsの.batより良い。