>I got it to works with a very minor correction(put $
> on variable name,e.g. $count, $blocksize, and
> $filename).

I've made a booboo...putting $ on the variable name makes the global
variables. Thanks to David for correcting me.

The code supplied by Tom Payne should work as it is(again, thanks Tom).




"Useko Netsumi" <usenets / nyc.rr.com> wrote in message
news:b308k0$1hasfc$1 / ID-159205.news.dfncis.de...
> Thanks for the example. I got it to works with a very minor correction(put
$
> on variable name,e.g. $count, $blocksize, and $filename).
>
> Suppose that I accidently put -g instead of -c, instead of giving me an
> error, it should just ignore it, just  like an *) in the 'case' statement
> for everything else it does not understand
>
> Thanks
>
> "Tom Payne" <google / tompayne.org> wrote in message
> news:6756066a.0302190627.754e22f9 / posting.google.com...
> > "Useko Netsumi" <usenets / nyc.rr.com> wrote in message
> news:<b2vb7j$1heg65$1 / ID-159205.news.dfncis.de>...
> > > Thank you, but its a bit advance for me. I'd like to start on how to
> parse
> > > arguments from a shell scripts such as the following:
> > >
> > > usage:  mktmpswap -c c0 -b b0 -f f0
> >
> > The getoptlong and optparse modules are your friend. They both parse
> > command line arguments but are quite different in design. getoptlong
> > is easier to use, but optparse is allegedly more powerful.
> >
> > Getoptlong example:
> >
> > -----8<-----
> > require 'getoptlong'
> >
> > count = blocksize = filename = nil # default values
> > GetoptLong.new(
> > ['-c', GetoptLong::REQUIRED_ARGUMENT],
> > ['-b', GetoptLong::REQUIRED_ARGUMENT],
> > ['-f', GetoptLong::REQUIRED_ARGUMENT]).each do |opt, arg|
> >   case opt
> >   when '-c' then count = arg
> >   when '-b' then blocksize = arg
> >   when '-f' then filename = arg
> >   end
> > end
> > -----8<-----
> >
> > Regards,
> >
> > Tom
>
>