Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com content-class: urn:content-classes:message Subject: RE: "if" "then" "elif" "fi" "done" MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Date: Thu, 6 Sep 2001 08:36:36 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.0.4712.0 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: "if" "then" "elif" "fi" "done" Thread-Index: AcE2mX+xE1ao79L9R0K/qC0Vqke2OAAAnlTw From: "Fritz, Wolfgang" To: Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id CAA20896 > -----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 > > > > -- > 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/