On 2005-08-01 13:55, John Baldwin <[EMAIL PROTECTED]> wrote: >On Monday 01 August 2005 01:29 pm, [EMAIL PROTECTED] wrote: >> This patch effects most of the rc.d scripts that utilize simple IF >> statements, converting them to logical AND/OR's instead. For example: >> >> if [ ! -f foo ] >> then >> bar >> fi >> >> Would simply become: >> >> [ -f foo ] || bar >> >> The exception (but not the rule) is for any situation where ELIF/ELSE is >> required. In other words any exclusive conditional situations. >> >> I also applied this notion to many simple blocks of code wrapped around >> non-exclusive IF statements, such as: >> >> [ -f foo ] && { >> command-list >> [...] >> } > > The argument I would have against this is that it is a lot easier to > read the 'if foo; then ; fi' style, esp. for folks used to using C, > etc. Shell scripts don't need to be overly obfuscated.
Ditto. The if/then blocks may look superficial at first and entirely redundant, but they really work much better then code like this: [ -f foo ] || bar has to be extended to form a multiline statement. Now, I know that one can always write: [ -f foo ] || { [ -d bar ] && { blah } } But this quickly gets too ugly for my taste. The equivalent if/then blocks: if [ ! -f foo ]; then if [ -d bar ]; then blah fi fi or even, the similar: if [ ! -f foo ] && [ -d bar ]; then blah fi Look much much prettier to the eyes of one who knows how to read both shell scripts and C code. - Giorgos _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"