"if" "then" "elif" "fi" "done"
Wayne Willcox
wayne@reliant.knighthammer.com
Thu Sep 6 05:46:00 GMT 2001
Also you must include white space between the [ and the items under
test.
correct:
if [ $one -eq 1 ];then
incorrect:
if [$one -eq 1];then
On Thu, Sep 06, 2001 at 08:36:36AM +0200, Fritz, Wolfgang wrote:
>>> > -----Original Message-----
> > From: Harter, Pete [ mailto:Pete.Harter@itt.com ]
> > Sent: Thursday, September 06, 2001 8:02 AM
> > To: 'cygwin@cygwin.com'
> > Subject: "if" "then" "elif" "fi" "done"
> >
> >
> > Dear Cygwin:
> >
> > I'm using Cygwin on NT, writing a bash script to catenate 241 files
> > together. I can't seem to get the "elif" "fi" "done"
> > statements to work.
> > Using "then" seem to have no effect.
> >
> > In particular, "elif","fi","done" all cause syntax errors.
> > I've done a "man
> > bash", which tells me that the "fi", "elif", "done", etc.
> > ought to work. I
> > can't find much on the www.cygwin.com about syntax.
>> That's because this is not a cygwin specific problem. Try to find a
> standard book about shell programming.
>> The "if" problem:
> "if, elif" needs a "then"
>> if condition ; then
> do_something
> elif other_condition ; then
> do_other_things
> fi
>> You may place "then" on a seperate line:
> if condition
> then
> do_something
> fi
>> A special trap with "["
>> if [ $i -gt 5 ] ; then
> # ^ this blank is a must
>> reason: "[" is an alias name for the command "test", the above really
> means:
>> if test $i -gt 5 ; then
> ...
> fi
>> do a "man test" to find the differences between "-gt" and ">" etc.
>> Wolfgang (hoping the M$ outlook does not mangle the formatting too
> much...)
>> >
> > Here's my commands:
> >
> > #!/bin/bash -x
> > pdt="/cygdrive/e/temps"
> > pcase="case2"
> > #
> > cat $pdt/$pcase/$pcase'001'.bdf > $pdt/$pcase.temp
> > pi=2
> > while [$pi < 241]
> > do
> > if [$pi < 10]
> > cat $pdt/$pcase/$pcase'00'$pi.bdf >> $pdt/$pcase.temp
> > elif
> > if [$pi < 100]
> > cat $pdt/$pcase/$pcase'0'$pi.bdf >> $pdt/$pcase.temp
> > elif [$pi >= 100]
> > cat $pdt/$pcase/$pcase$pi.bdf >> $pdt/$pcase.temp
> > fi
> > fi
> > echo $pi
> > pi=$pi+1
> > done
> >
> > I revised the commands (by trial & error) to the following,
> > which gives no
> > syntax error except that it says "unexpected end of file"
> > after the last
> > line:
> >
> > #!/bin/bash -x
> > pdt="/cygdrive/e/temps"
> > pcase="case2"
> > #
> > cat $pdt/$pcase/$pcase'001'.bdf > $pdt/$pcase.temp
> > pi=2
> > while [$pi < 241]
> > do
> > if [$pi < 10]
> > cat $pdt/$pcase/$pcase'00'$pi.bdf >> $pdt/$pcase.temp
> > ei
> > if [$pi < 100]
> > cat $pdt/$pcase/$pcase'0'$pi.bdf >> $pdt/$pcase.temp
> > ei [$pi >= 100]
> > cat $pdt/$pcase/$pcase$pi.bdf >> $pdt/$pcase.temp
> > endif
> > endif
> > echo $pi
> > pi=$pi+1
> > enddo
> >
> > Please help. Thanks
> >
> > Pete Harter
> > ITT A/CD Mechanical Analysis
> > 219-451-6865
> > < mailto:pete.harter@itt.com >
> >
> >
> > --
> > Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
> > Bug reporting: http://cygwin.com/bugs.html
> > Documentation: http://cygwin.com/docs.html
> > FAQ: http://cygwin.com/faq/
> >
> >
>> --
> Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
> Bug reporting: http://cygwin.com/bugs.html
> Documentation: http://cygwin.com/docs.html
> FAQ: http://cygwin.com/faq/
--
Slowly and surely the unix crept up on the Nintendo user ...
Wayne Willcox I will not eat green eggs and ham
wayne@reliant.immure.com I will not eat them Sam I Am!!
A wise person makes his own decisions, a weak one obeys public opinion.
-- Chinese proverb
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
More information about the Cygwin
mailing list