Command line parameter problem in scripts ?

赵方杰 fuziok at gmail.com
Tue Oct 10 20:28:03 UTC 2006


I'm sorry. "shift" used in "for...do...done" is not correct. "$1"
between "for" and "do" can only be processed at first time.

2006/10/11, 赵方杰 <fuziok at gmail.com>:
> You can use $@ instead of $1, or you can use "shift" command: for
> eachfile in "$1"; do [ x"$eachfile" = x ] && break; ...... ; shift;
> done
>
> 2006/10/11, Kim Lux <lux at diesel-research.com>:
> > On Tue, 2006-10-10 at 13:44 -0400, Steven W. Orr wrote:
> > > On Tuesday, Oct 10th 2006 at 18:20 +0100, quoth Paul Howarth:
> > > That could be a loss of functionality for what kim might have intended.
> If
> > > the intent was to specify that the globbing needs to happen in the
> script
> > > then
> > >
> > > for eachFile in $1
> > > do
> > >      ...
> > > done
> >
> > This doesn't work either.   Calling myscript with "myscript *"  results
> > in $1 being file1 and then "for eachFile in $1" is "for file1" and then
> > only the first file gets processed.
> >
> > > would do it but the invocation would require single quotes.
> >
> > Please explain this.  You lost me here.
> >
> >
> >
> > --
> > Kim Lux,  Diesel Research Inc.
> >
> >
> > --
> > fedora-list mailing list
> > fedora-list at redhat.com
> > To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
> >
>




More information about the fedora-list mailing list