A pattern for parsing options from the command line.
Having read ParamPattern, I think this can be done in a more general and flexible way.
I usually parse options from the command line in the following way:
# Parse this function $@ function parse_opts () { # What to do if program is called with no parameters... if [ $# -eq 0 ]; then handle_no_params # insert your own code here... fi # handle all parameters while [ "x$1" != "x" ] do case x$1 in x-v|x--version) display_version ;; x-h|x--help) display_help ;; # alternatively, use the Comments As Data pattern here... *) ;; # Just ignore this unknown option... esac shift done } # do it! parse_opts $@You then call parse_opts with $@ (all the argument from the command line). Note that you can easily handle different parameters in different places. It's perfectly possible to have several similar parse_opts functions handling different types of parameters, since the function works on a "copy" of $@ (you could use this in the ParamPattern scenario where you parse general options in a separate place).
The GNU getopt program is also a nice way to do it. It gives you a lot of control and flexibility. However, sometimes it's not available on the platform you're working on. The solution above relies only on shell builtins.
-- Christian Theil Have (cth @ dasfisk dot dk)