Home
| Calendar
| Mail Lists
| List Archives
| Desktop SIG
| Hardware Hacking SIG
Wiki | Flickr | PicasaWeb | Video | Maps & Directions | Installfests | Keysignings Linux Cafe | Meeting Notes | Linux Links | Bling | About BLU |
That worked! Thanks, Anthony On Wed, 30 Jan 2002, Lars Kellogg-Stedman wrote: > > #!/bin/sh > > # > > # Handles Arguments > > # > > > > while getopts xy: option > > The first problem is with you optstring. If both the 'x' and 'y' > options require an argument (which is what your help text implies), then > your optstring should be 'x:y:'. > > > echo $OPTARG > > What's this echo statement doing in the expression portion of your while > statement? I think you meant for this to come after the 'do' on the > next line. The way its current positioned, your while statement looks > like this: > > while true; do > > Which would loop forever, except that getopts sets option to '?' if > there are no more arguments, so instead it bails out in your case statement. > > > do > > case $option in > > x) xdim=$OPTARG;; > > y) ydim=$OPTARG;; > > \?) echo "usage: ds9sh [-x columns] [-y columns] file..." > > exit 2;; > > esac > > done > > shift `expr $OPTIND - 1` > > This ought to work for you: > > while getopts x:y: option; do > case $option in > x) xdim=$OPTARG;; > y) ydim=$OPTARG;; > \?) echo "usage: ..." > exit 2;; > esac > done > shift `expr $OPTIND - 1` > > Note that I've replaced some EOLs with semicolons, which is just my > formatting preference. The following two statements are equivalent: > > while true; do > echo hello > done > > And: > > while true > do > echo hello > done > > -- Lars > >
BLU is a member of BostonUserGroups | |
We also thank MIT for the use of their facilities. |