From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Fritz, Wolfgang" To: Subject: RE: "if" "then" "elif" "fi" "done" Date: Wed, 05 Sep 2001 23:36:00 -0000 Message-id: X-SW-Source: 2001-09/msg00236.html > -----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/