bash/shell to python

Cameron Simpson cs at zip.com.au
Sun May 20 23:39:10 EDT 2012


On 19May2012 08:27, Michael Torrie <torriem at gmail.com> wrote:
| On 05/16/2012 08:16 PM, Rita wrote:
| > I currently build a lot of interfaces/wrappers to other applications
| > using bash/shell. One short coming for it is it lacks a good method
| > to handle arguments so I switched to python a while ago to use
| > 'argparse' module.
| 
| Actually there is a great way of parsing command line options in
| bash, using the GNU "getopt" program.  See:
| http://www.manpagez.com/man/1/getopt/
| 
| This command is available on all Linux systems, and most BSD systems.
| There's also freegetopt, a BSD implementation for unix, MSDOS, or Windows.

And if you don't want to do option bundling it's easy enough to write a
simple option parser without getopt at all.

My standard option parsing looks somewhat like this:

  # some things to control via the options
  the_file=
  doit=1
  trace=
  # badness?
  badopts=
  while [ $# -gt 0 ]
  do
    case $1 in
      -f)       the_file=$2; shift ;;
      -n)       doit= ;;
      -x)       trace=1 ;;
      --)       shift; break ;;
      -?*)      echo "$0: unrecognised option: $1" >&2
                badopts=1
                ;;
      *)        break ;;
    esac
    shift
  done
  # ... parse non-option arguments ...
  [ $badopts ] && { echo "$usage" >&2; exit 2; }
  # ... rest of program ...

There's nothing hard there.

Cheers,
-- 
Cameron Simpson <cs at zip.com.au> DoD#743
http://www.cskk.ezoshosting.com/cs/

Any profit should go to Arnie's `get the daemon carved on Mount Rushmore' fund.
        - Marty Albini, DOD0550, martya at sdd.hp.com



More information about the Python-list mailing list