シェルスクリプト初心者のつまづきポイント1
自分のことですけど。
たぶん、みんなもこの辺で一回つまづくんじゃないかと思う。
・変数のスコープ
基本的にグローバル(local宣言は別)だけど、$nの特殊変数は関数内では使えません。
・終了ステータス
他の言語と違って、0が真。
スクリプトを利用する側にたって、終了ステータスを返すくせを。
成功したら0、失敗したらそれ以外。
exit 0
・実行する場所
スクリプトの中でファイルを作成する、ファイルを読む。
こんなとき実行する場所によってパスがずれてうまく動かなかったりする。
社内のソースで学んだところでは下記のようにカレントを移動してから実行する。
もちろん実行後に実際にcdされていることは無いので大丈夫。
cd `dirname $0`
このサイトほんと役に立つ
Bash - シェルスクリプト内での作業ディレクトリ - Qiita