shargsのプログラミング哲学(?)

shargsは次のような基本的な考え方に基づき作成してみた

  • 引数の読み込み処理だけを行い、エラー処理を含めて、その結果に伴うロジックはメインとなるシェルスクリプトの方で行なう。エラーがあった場合、無視して処理を続けるのか、Usageメッセージを出して終了するのか、Usageメッセージの他に何か説明文を出すのかなどの選択ができる。
  • 一方でメインのスクリプトにおける引数の操作の負担を極力減らすように、Usageメッセージを自動生成し、さらに任意選択でメッセージの出力までできるように実装した。
  • 出来る限り "Bourne Shell"の機能だけで作った。C ShellなどのB Shellから拡張されたbashの機能は極力避けた。(但し、何処までがB Shellオリジナルか分からないので、厳密ではない。"シェル変数の修飾"やsourceもオリジナルのB Shellにはなかったかも。確かsourceはC Shellの機能だったような....)そのため、"for ( ( ; ; ; ) )"やシェル変数の配列は使っていない。プログラミング・テクニックで配列と同等の機能実現している。(B Shellフリークなので。)
  • 出来るだけ汎用的に使えるように心がけた