From: casper@fwi.uva.nl (Casper H.S. Dik) Subject: Re: Csh Programming Considered Harmful Date: Wed Oct 12 16:24 MDT 1994 The many C-shells will interpret "if( ..." different from "if (" depending on whether the if is in a branch of an if that's being taken or an untaken branch. The C-shell uses two *different* parsers. The point is *not* whether the C-shell accepts "if(" or not. What does the following echo in *your* C-shell? unset foo bar if ( $?foo ) then if( $?bar) then >& /dev/null echo bar and foo else echo not bar and foo endif else echo not foo endif Obviously, the *right* answer is not foo. [ ( $?foo ) checks if set and returns false ] You'll also notice that the redirection at the end of the then line is perfectly acceptable to the C-shell at the top level (it throws away all output of the if-expression). The point is that the C-shell doesn't *parse* it's input, it adhoculates it. Casper