shFlags を試してみてください -- Unix シェル スクリプト用の高度なコマンドライン フラグ ライブラリです。
http://code.google.com/p/shflags/
それは非常に優れており、非常に柔軟です。
フラグの種類: これは、実行できる DEFINE_* のリストです。すべてのフラグは、名前、デフォルト値、ヘルプ文字列、およびオプションの「短い」名前 (1 文字の名前) を取ります。一部のフラグには、フラグで説明されている他の引数があります。
DEFINE_string: 任意の入力を受け取り、文字列として解釈します。
DEFINE_boolean: 通常は引数を取りません。FLAGS_myflag を true に設定するには --myflag を指定し、FLAGS_myflag を false に設定するには --nomyflag を指定します。または、 --myflag=true または --myflag=t または --myflag=0 または --myflag=false または --myflag=f または --myflag=1 と言うことができます オプションを渡すことは、オプションは一度。
DEFINE_float: 入力を受け取り、それを浮動小数点数として解釈します。シェルは浮動小数点自体をサポートしていないため、入力は有効な浮動小数点値として検証されるだけです。
DEFINE_integer: 入力を受け取り、それを整数として解釈します。
特別なフラグ: 特別な意味を持つフラグがいくつかあります: --help (または -?) は、人間が読める形式ですべてのフラグのリストを出力します --flagfile=foo foo からフラグを読み取ります。(まだ実装されていません) -- getopt() と同様に、フラグ処理を終了します。
使用例:
-- begin hello.sh --
! /bin/sh
. ./shflags
DEFINE_string name 'world' "somebody's name" n
FLAGS "$@" || exit $?
eval set -- "${FLAGS_ARGV}"
echo "Hello, ${FLAGS_name}."
-- end hello.sh --
$ ./hello.sh -n Kate
Hello, Kate.
注: このテキストは shflags のドキュメントから引用しました