Mail Archives: cygwin/2001/09/06/02:36:58
> -----Original Message-----
> From: Harter, Pete [mailto:Pete DOT Harter AT itt DOT com]
> Sent: Thursday, September 06, 2001 8:02 AM
> To: 'cygwin AT cygwin DOT 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 DOT harter AT itt DOT 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/
- Raw text -