小技/TIPS的なもの
自分がよく作るシェルのパターン
#/bin/sh | お決まり |
# COMMAND=echo COMMAND=ld_rm |
デバッグ用:コメントで切り替えて、メインとなるコマンドをechoにする 本番用:デバッグのときにはコメントアウトする |
# 変数の定義 PORT=16009 USER=XXXX |
変数を定義 |
# USAGE関数を定義 USAGE() { echo "usage: %0 ~~~" } |
使用方法を出す用途で定義した関数 最初に定義しておけば簡単な説明書代わりになる (看板を書くのが面倒なときの代用) %0 でこのシェルの名前をechoする |
# 引数の数チェック if [ $# -ne 数字 ] else # 引数の数が過不足 #USAGEを呼ぶ USAGE # エラーで終了 exit 1 fi |
最初に引数チェックを行い、不正ならUSAGEを呼んで終了 |
#引数によって処理を分ける case($1) [Aa]) ~~~~ ~~~~ ;; [Bb]) ~~~~ ~~~~ ;; *) # default 引数に誤りがあるのでUSAGE関数を呼んで終了 USAGE exit 1 ;; esac |
主に実行オプションの判別目的で自分はcase文をよく使う さらにcase文をfor ~ in $@ do~doneで挟めばすべての引数(オプション)のチェックができる もしくはwhile~do~doneで挟み、カウンタが&#になるまでshiftするという手も。 |
if ! $COMMAND -u $USER -p $PORT then # 異常終了の処理をやってexit ~~~~ exit $? fi |
COMMANDの実行結果が不正のときにはshellがCOMMANDの戻り値を返す |
exit 0 | 正常終了 |